Nucleic-Session: F3A1977C-920D-4846-8139-0C063BAB7EE2 Co-authored-by: Nucleic <[email protected]>
266 lines
13 KiB
HTML
266 lines
13 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Support — Nucleic</title>
|
|
<meta name="description" content="Help and how-to guides for Nucleic: Nucleic Control, sandboxes, and macOS virtual machines — including setting up AX-based computer use for macOS VMs." />
|
|
<meta name="theme-color" content="#faf7f3" />
|
|
<meta name="robots" content="index, follow" />
|
|
|
|
<!-- atom mark, reused as favicon -->
|
|
<link rel="icon" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke-width='7'><ellipse cx='50' cy='50' rx='17' ry='40' transform='rotate(80 50 50)' stroke='%237AA7DD'/><ellipse cx='50' cy='50' rx='17' ry='40' transform='rotate(20 50 50)' stroke='%23DF619B'/><ellipse cx='50' cy='50' rx='17' ry='40' transform='rotate(140 50 50)' stroke='%23C5826F'/></g></svg>" />
|
|
|
|
<!-- Self-hosted fonts (latin subset). The woff2 binaries live in fonts/ and are
|
|
preloaded so they download in parallel with the HTML; @font-face is inlined
|
|
(no render-blocking stylesheet) and the page never contacts Google. -->
|
|
<link rel="preload" href="fonts/space-grotesk.woff2" as="font" type="font/woff2" crossorigin />
|
|
<link rel="preload" href="fonts/jetbrains-mono.woff2" as="font" type="font/woff2" crossorigin />
|
|
<style>
|
|
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/space-grotesk.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
|
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(fonts/jetbrains-mono.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
|
</style>
|
|
|
|
<style>
|
|
:root{
|
|
--ink:#181520;
|
|
--ink-soft:#5b5560;
|
|
--ink-faint:#8b8590;
|
|
--paper:#faf7f3;
|
|
--panel:#fffdfb;
|
|
--panel-2:#f3ede6;
|
|
--line:#e6ded4;
|
|
--line-2:#efe9e1;
|
|
|
|
--blue:#5e9bd8;
|
|
--pink:#db5f97;
|
|
--magenta:#c264ad;
|
|
--rust:#c47e69;
|
|
--green:#5fa775;
|
|
--amber:#d7a23f;
|
|
|
|
--sans:"Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
|
|
--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
|
|
--maxw:1080px;
|
|
--prose:760px;
|
|
}
|
|
|
|
*{box-sizing:border-box}
|
|
html{scroll-behavior:smooth}
|
|
body{
|
|
margin:0;
|
|
overflow-x:clip;
|
|
font-family:var(--sans);
|
|
color:var(--ink);
|
|
background:var(--paper);
|
|
background-image:radial-gradient(var(--line) 1px, transparent 1px);
|
|
background-size:26px 26px;
|
|
background-position:-13px -13px;
|
|
-webkit-font-smoothing:antialiased;
|
|
line-height:1.5;
|
|
}
|
|
a{color:inherit}
|
|
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
|
|
|
|
.mono{font-family:var(--mono)}
|
|
.kicker{
|
|
font-family:var(--mono);
|
|
font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
|
|
color:var(--ink-faint);
|
|
}
|
|
|
|
/* ---------- top bar ---------- */
|
|
header{
|
|
position:sticky;top:0;z-index:20;
|
|
backdrop-filter:saturate(1.1) blur(8px);
|
|
background:color-mix(in srgb, var(--paper) 82%, transparent);
|
|
border-bottom:1px solid var(--line-2);
|
|
}
|
|
.bar{display:flex;align-items:center;justify-content:space-between;height:62px}
|
|
.brand{display:flex;align-items:center;gap:11px;font-weight:600;letter-spacing:-.01em;font-size:17px;text-decoration:none;color:var(--ink)}
|
|
.brand .mk{width:26px;height:26px;display:block}
|
|
.nav{display:flex;align-items:center;gap:22px;font-size:14px;color:var(--ink-soft)}
|
|
.nav a{text-decoration:none}
|
|
.nav .lk:hover{color:var(--ink)}
|
|
.btn{
|
|
font-family:var(--sans);font-size:14px;font-weight:500;
|
|
text-decoration:none;cursor:pointer;border:0;
|
|
padding:9px 16px;border-radius:10px;
|
|
color:#fff;background:var(--ink);
|
|
transition:transform .12s ease, opacity .12s ease;
|
|
white-space:nowrap;-webkit-tap-highlight-color:transparent;
|
|
}
|
|
.btn:link,.btn:visited,.btn:hover,.btn:focus,.btn:active{color:#fff}
|
|
.btn:hover{opacity:.9;transform:translateY(-1px)}
|
|
@media (max-width:600px){ .nav .lk{display:none} }
|
|
|
|
/* ---------- doc header ---------- */
|
|
.doc-hero{padding:60px 0 26px}
|
|
.doc-hero .wrap{max-width:var(--prose)}
|
|
.doc-hero h1{
|
|
font-size:clamp(32px,5vw,48px);line-height:1.04;letter-spacing:-.03em;
|
|
font-weight:600;margin:14px 0 0;
|
|
}
|
|
.doc-hero h1 .em{
|
|
background:linear-gradient(100deg,var(--rust),var(--pink) 45%,var(--magenta) 70%,var(--blue));
|
|
-webkit-background-clip:text;background-clip:text;color:transparent;
|
|
}
|
|
.doc-hero .lede{max-width:var(--prose);margin:16px 0 0;font-size:17px;color:var(--ink-soft);line-height:1.6}
|
|
|
|
/* ---------- support hub ---------- */
|
|
main{padding:10px 0 30px}
|
|
.hub{max-width:var(--prose);margin:0 auto}
|
|
.sup-group{padding:26px 0;border-top:1px solid var(--line-2)}
|
|
.sup-group:first-child{border-top:0}
|
|
.sup-group .g-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 4px}
|
|
.sup-group h2{font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0}
|
|
.sup-group .g-sub{color:var(--ink-soft);font-size:15px;margin:6px 0 16px;line-height:1.6}
|
|
.art-grid{display:grid;gap:12px}
|
|
.art-card{
|
|
display:block;text-decoration:none;color:inherit;
|
|
border:1px solid var(--line);border-radius:14px;background:var(--panel);
|
|
padding:16px 18px;transition:border-color .14s ease, transform .14s ease, box-shadow .14s ease;
|
|
}
|
|
.art-card:hover{border-color:color-mix(in srgb,var(--magenta) 45%,var(--line));transform:translateY(-1px);box-shadow:0 6px 22px -14px rgba(24,21,32,.28)}
|
|
.art-card .t{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:600;letter-spacing:-.01em}
|
|
.art-card .t .arw{margin-left:auto;color:var(--ink-faint);transition:transform .14s ease, color .14s ease}
|
|
.art-card:hover .t .arw{transform:translateX(3px);color:var(--magenta)}
|
|
.art-card p{margin:7px 0 0;color:var(--ink-soft);font-size:14px;line-height:1.55}
|
|
.art-card .badge{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--magenta);border:1px solid color-mix(in srgb,var(--magenta) 40%,var(--line));border-radius:6px;padding:1px 6px}
|
|
|
|
.help-cta{
|
|
max-width:var(--prose);margin:18px auto 0;
|
|
border:1px solid var(--line);border-radius:16px;background:
|
|
radial-gradient(120% 140% at 0% 0%, color-mix(in srgb,var(--blue) 8%,transparent), transparent 44%),
|
|
radial-gradient(120% 140% at 100% 100%, color-mix(in srgb,var(--pink) 8%,transparent), transparent 44%),
|
|
var(--panel);
|
|
padding:20px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
|
|
}
|
|
.help-cta div{flex:1 1 260px}
|
|
.help-cta h2{margin:0 0 4px;font-size:16px;font-weight:600;letter-spacing:-.01em}
|
|
.help-cta p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.55}
|
|
.help-cta a{color:var(--ink);font-weight:500}
|
|
|
|
footer{border-top:1px solid var(--line-2);padding:30px 0 50px;margin-top:20px}
|
|
.foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--ink-faint);font-size:13px}
|
|
.foot .mono{font-size:12px}
|
|
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
|
|
.foot-links a{text-decoration:none;color:var(--ink-soft)}
|
|
.foot-links a:hover{color:var(--ink)}
|
|
.dotsep{color:var(--line)}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- ===== top bar ===== -->
|
|
<header>
|
|
<div class="wrap bar">
|
|
<a class="brand" href="/">
|
|
<svg class="mk" viewBox="0 0 100 100" aria-hidden="true">
|
|
<g fill="none" stroke-width="7">
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(80 50 50)" stroke="#7AA7DD"/>
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(20 50 50)" stroke="#DF619B"/>
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(140 50 50)" stroke="#C5826F"/>
|
|
</g>
|
|
</svg>
|
|
Nucleic
|
|
</a>
|
|
<nav class="nav">
|
|
<a class="lk" href="/">Home</a>
|
|
<a class="btn" href="https://updates.nucleic.blakeslee.xyz/beta/latest" target="_blank" rel="noopener noreferrer">Download</a>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<!-- ===== title ===== -->
|
|
<section class="doc-hero">
|
|
<div class="wrap">
|
|
<div class="kicker">Support</div>
|
|
<h1>Nucleic <span class="em">Help Center</span></h1>
|
|
<p class="lede">How-to guides for running agents safely — isolating them in Nucleic Control, sandboxing their work, and giving each one a whole macOS virtual machine of its own. Pick a topic below.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<main>
|
|
<div class="wrap hub">
|
|
|
|
<div class="sup-group">
|
|
<div class="g-head"><h2>Nucleic Control</h2></div>
|
|
<p class="g-sub">The hardened path where Nucleic clones, sandboxes, and observes a project directly — the foundation for unattended work, Autoship, and Orchestra.</p>
|
|
<div class="art-grid">
|
|
<a class="art-card" href="/support/nucleic-control.html">
|
|
<div class="t">What is Nucleic Control?<span class="arw" aria-hidden="true">→</span></div>
|
|
<p>What Control does, how to turn on the container service, and what it unlocks — sandboxed sessions, certain git observation, Autoship, and Orchestra.</p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sup-group">
|
|
<div class="g-head"><h2>Sandboxes</h2></div>
|
|
<p class="g-sub">Every sandboxed session runs in its own lightweight Linux VM, built on Apple's containerization framework — isolated from your host and from other sessions.</p>
|
|
<div class="art-grid">
|
|
<a class="art-card" href="/support/sandboxes.html">
|
|
<div class="t">How agent sandboxing works<span class="arw" aria-hidden="true">→</span></div>
|
|
<p>What the sandbox is, what it isolates, the per-project options (idle timeout, host exec, custom images), and why the Swift toolchain lives in a VM instead.</p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sup-group">
|
|
<div class="g-head"><h2>Virtual Machines</h2></div>
|
|
<p class="g-sub">Give an agent a whole Mac of its own — a per-session macOS VM for Xcode, the simulators, and codesign, so parallel Mac builds never collide on your host.</p>
|
|
<div class="art-grid">
|
|
<a class="art-card" href="/support/virtual-machines.html">
|
|
<div class="t">macOS virtual machines: overview<span class="arw" aria-hidden="true">→</span></div>
|
|
<p>What macOS VMs are, the hardware and disk requirements, how per-session VMs are cloned and torn down, and how many run at once.</p>
|
|
</a>
|
|
<a class="art-card" href="/support/macos-vm-base-image.html">
|
|
<div class="t">Building the base image<span class="arw" aria-hidden="true">→</span></div>
|
|
<p>The one-time golden base install: what the build does, choosing a guest macOS version, and pointing at a prebuilt bundle or a specific restore image.</p>
|
|
</a>
|
|
<a class="art-card" href="/support/macos-vm-computer-use.html">
|
|
<div class="t">Computer use for macOS VMs<span class="arw" aria-hidden="true">→</span></div>
|
|
<p>Let an agent see and drive the VM's screen — clicks, keys, and scrolling. The default path runs host-side with no in-guest setup and no permissions.</p>
|
|
</a>
|
|
<a class="art-card" href="/support/macos-vm-ax-agent.html">
|
|
<div class="t">Setting up AX-based computer use<span class="badge">Advanced</span><span class="arw" aria-hidden="true">→</span></div>
|
|
<p>The optional in-guest agent for semantic control — act on a UI element by identity, and inspect an app's accessibility tree. Fully automated on macOS 27.</p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="help-cta">
|
|
<div>
|
|
<h2>Can't find what you need?</h2>
|
|
<p>These guides grow alongside Nucleic. If something is missing or unclear, email <a href="mailto:[email protected]">[email protected]</a> and we'll help.</p>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</main>
|
|
|
|
<footer>
|
|
<div class="wrap foot">
|
|
<div class="brand" style="font-size:15px">
|
|
<svg class="mk" viewBox="0 0 100 100" aria-hidden="true">
|
|
<g fill="none" stroke-width="7">
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(80 50 50)" stroke="#7AA7DD"/>
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(20 50 50)" stroke="#DF619B"/>
|
|
<ellipse cx="50" cy="50" rx="17" ry="40" transform="rotate(140 50 50)" stroke="#C5826F"/>
|
|
</g>
|
|
</svg>
|
|
Nucleic
|
|
</div>
|
|
<div class="foot-links">
|
|
<a href="/">Home</a>
|
|
<a href="/support.html">Support</a>
|
|
<a href="/privacy.html">Privacy</a>
|
|
<a href="/terms.html">Terms</a>
|
|
</div>
|
|
<div class="mono">© 2026 Andrew Blakeslee Moore · Made with Nucleic</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|