> ## Documentation Index
> Fetch the complete documentation index at: https://smithers.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Request access

> Smithers Cloud is in closed alpha, a real filesystem and git environment above your GitHub where agents work through Flows you can watch and steer. Access is by request.

<div className="landing-root">
  <section className="max-w-6xl mx-auto px-6 pt-16 pb-12 md:pt-24">
    <div className="grid lg:grid-cols-2 gap-14 items-start">
      <div>
        <span className="landing-eyebrow">
          <span className="landing-dot" aria-hidden="true" />

          Smithers Cloud · closed alpha · access by request
        </span>

        <h1 className="landing-display mt-6" style={{ fontSize: "clamp(2.2rem, 4.6vw, 3.4rem)" }}>
          A working environment <span className="landing-brass">above your GitHub.</span>
        </h1>

        <p className="mt-6 text-lg leading-relaxed" style={{ maxWidth: "34rem" }}>
          You describe the work. Smithers builds the thing that does it, and runs
          it in a real filesystem with working git on top of your GitHub repos.
          There is nothing to assemble: no canvas, no graph, no SDK. You watch it
          work, steer it, or take it back. GitHub stays the system of record, so
          changes land there through the normal review path.
        </p>

        <p className="mt-4" style={{ maxWidth: "34rem" }}>
          It is in closed alpha. There is no public signup: accounts are added to
          an allowlist by GitHub handle, by hand.
        </p>

        <div className="flex flex-wrap gap-3 mt-9">
          <a className="landing-btn" href="mailto:will@smithers.sh?subject=Smithers%20alpha%20access&body=GitHub%20handle%3A%0A%0AWhat%20I%27d%20point%20Smithers%20at%20(repos%2C%20or%20the%20work%20I%20want%20moved)%3A%0A%0AWhat%20I%20run%20today%3A%0A">
            Request access →
          </a>
        </div>

        <p className="mt-4" style={{ fontSize: "0.85rem" }}>
          No card, and nothing to install. If you are not on the allowlist yet,
          there is a{" "}
          <a href="/guide/get-started" className="landing-brass">developer route</a>{" "}
          at the bottom of this page.
        </p>
      </div>

      <div className="landing-card overflow-hidden" style={{ borderRadius: "14px" }}>
        <div className="flex items-center justify-between px-4 py-3" style={{ borderBottom: "1px solid var(--l-line)", background: "color-mix(in oklch, var(--l-surface) 60%, transparent)" }}>
          <div className="flex items-center gap-2">
            <span className="landing-chrome-dot" aria-hidden="true" />

            <span className="landing-chrome-dot" aria-hidden="true" />

            <span className="landing-chrome-dot" aria-hidden="true" />
          </div>

          <span style={{ fontFamily: "ui-monospace, monospace", fontSize: "0.75rem", color: "var(--l-ink-muted)" }}>
            to · [will@smithers.sh](mailto:will@smithers.sh)
          </span>

          <span style={{ fontFamily: "ui-monospace, monospace", fontSize: "0.65rem", letterSpacing: "0.12em", textTransform: "uppercase", color: "var(--l-ink-muted)" }}>
            read by a person
          </span>
        </div>

        <div className="p-5">
          <div className="landing-eyebrow" style={{ marginBottom: "0.75rem" }}>Three lines is enough</div>

          <div
            className="landing-cmd"
            role="button"
            tabIndex={0}
            onClick={() => {
        navigator.clipboard.writeText("GitHub handle:\n\nWhat I'd point Smithers at (repos, or the work I want moved):\n\nWhat I run today:\n");
        const c = document.getElementById("req-copy-check");
        if (c) { c.style.opacity = "1"; setTimeout(() => { c.style.opacity = "0"; }, 1800); }
      }}
            style={{ cursor: "pointer", lineHeight: 1.9 }}
          >
            <div className="flex items-start justify-between gap-4">
              <div>
                <div><span className="landing-brass">1.</span> GitHub handle</div>
                <div><span className="landing-brass">2.</span> What you would point Smithers at: the repos, or the work you want moved</div>
                <div><span className="landing-brass">3.</span> What you run today</div>
              </div>

              <span id="req-copy-check" className="landing-brass" style={{ opacity: 0, transition: "opacity 0.2s", fontSize: "0.8rem", whiteSpace: "nowrap" }}>copied ✓</span>
            </div>
          </div>

          <p className="mt-4" style={{ fontSize: "0.85rem", margin: "1rem 0 0" }}>
            The GitHub handle is the part we actually need, because the allowlist
            is keyed on it. Click the block to copy the template, or use the button
            and your mail client will fill it in.
          </p>

          <div className="mt-5">
            <a className="landing-btn" href="mailto:will@smithers.sh?subject=Smithers%20alpha%20access&body=GitHub%20handle%3A%0A%0AWhat%20I%27d%20point%20Smithers%20at%20(repos%2C%20or%20the%20work%20I%20want%20moved)%3A%0A%0AWhat%20I%20run%20today%3A%0A">
              Write the email
            </a>
          </div>
        </div>
      </div>
    </div>
  </section>

  <section className="max-w-5xl mx-auto px-6 py-14">
    <div className="text-center mb-10">
      <span className="landing-eyebrow">What the hosted product is</span>

      <h2 className="landing-display mt-5" style={{ fontSize: "clamp(1.7rem, 3.6vw, 2.4rem)" }}>
        Not a view of GitHub. A place to work.
      </h2>
    </div>

    <div className="grid md:grid-cols-3 gap-5">
      <div className="landing-card p-6">
        <div className="landing-eyebrow" style={{ marginBottom: "0.75rem" }}>The workspace</div>

        <p style={{ margin: 0, color: "var(--l-ink-muted)", fontSize: "0.92rem", lineHeight: 1.6 }}>
          Your repos exist as real files with working git. Nothing to clone, no
          local install, no terminal required to get started.
        </p>
      </div>

      <div className="landing-card p-6">
        <div className="landing-eyebrow" style={{ marginBottom: "0.75rem" }}>Flows, not black boxes</div>

        <p style={{ margin: 0, color: "var(--l-ink-muted)", fontSize: "0.92rem", lineHeight: 1.6 }}>
          Work runs as named Flows you can watch in a timeline, interrupt, and
          redirect mid-run. Nothing completes or fails silently.
        </p>
      </div>

      <div className="landing-card p-6">
        <div className="landing-eyebrow" style={{ marginBottom: "0.75rem" }}>GitHub stays canonical</div>

        <p style={{ margin: 0, color: "var(--l-ink-muted)", fontSize: "0.92rem", lineHeight: 1.6 }}>
          Changes land back in your repos as commits, PRs, issues, and comments.
          Smithers replaces the interface, not the system of record.
        </p>
      </div>
    </div>
  </section>

  <section className="max-w-4xl mx-auto px-6 py-14" style={{ borderTop: "1px solid var(--l-line)" }}>
    <div className="grid md:grid-cols-2 gap-10">
      <div>
        <span className="landing-eyebrow">Who the alpha is for</span>

        <h2 className="landing-display mt-4" style={{ fontSize: "1.6rem" }}>
          Technical operators whose work already lives in GitHub.
        </h2>

        <p className="mt-5" style={{ fontSize: "0.95rem" }}>
          People who run agents, maintain repos, and carry a queue of issues and
          PRs. The job it is built for:
        </p>

        <div className="landing-card landing-card-accent p-5 mt-4">
          <p style={{ margin: 0, color: "var(--l-ink)" }}>
            “Stay on top of the work in my repos and actually move it, without
            babysitting an agent.”
          </p>
        </div>

        <p className="mt-5" style={{ fontSize: "0.9rem" }}>
          If that is not your week, the alpha probably is not for you yet. Say so
          in the email anyway and we will tell you straight.
        </p>
      </div>

      <div>
        <span className="landing-eyebrow">Not in this alpha</span>

        <div className="flex flex-col gap-2.5 mt-4" style={{ fontSize: "0.92rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          <span><strong style={{ color: "var(--l-ink)" }}>Web only.</strong> There is no desktop or native app to download. Local files and local repos are reached through the hosted workspace, not your machine.</span>
          <span><strong style={{ color: "var(--l-ink)" }}>One user, one workspace.</strong> No teams, no shared workspaces, no seats to invite.</span>
          <span><strong style={{ color: "var(--l-ink)" }}>Sources beyond GitHub.</strong> GitHub plus the filesystem and git of the workspace itself. That is the connector set.</span>
          <span><strong style={{ color: "var(--l-ink)" }}>Support guarantees.</strong> One person is on call. No SLA, no uptime guarantee, no 24/7 support, and nothing on this site will pretend otherwise.</span>
        </div>
      </div>
    </div>
  </section>

  <section className="max-w-4xl mx-auto px-6 py-14" style={{ borderTop: "1px solid var(--l-line)" }}>
    <div className="text-center mb-10">
      <span className="landing-eyebrow">If you are let in</span>

      <h2 className="landing-display mt-5" style={{ fontSize: "clamp(1.7rem, 3.6vw, 2.4rem)" }}>
        What the first session is built to do.
      </h2>

      <p className="mt-5" style={{ maxWidth: "36rem", marginInline: "auto" }}>
        Written down so you can hold us to it rather than find out later.
      </p>
    </div>

    <div className="flex flex-col gap-3" style={{ maxWidth: "40rem", marginInline: "auto" }}>
      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">01</span>  Sign in with GitHub
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          Sign-in and the first connector are one act. What Smithers will read, and
          what it will never do without asking, is stated in plain words before the
          OAuth screen.
        </span>
      </div>

      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">02</span>  The workspace is already there
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          Your repos as a real filesystem with working git. Nothing to clone,
          install, or configure before anything useful happens.
        </span>
      </div>

      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">03</span>  Smithers has already read
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          The first message is not a greeting and not a blank prompt box. It is
          what Smithers found in your actual repos.
        </span>
      </div>

      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">04</span>  One recommendation, not a menu
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          What it proposes, why now, what happens if you accept, and how to accept,
          edit, or dismiss it. Dismiss is one key and it does not argue.
        </span>
      </div>

      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">05</span>  The Flow runs where you can see it
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          In the timeline while it works, as a card in the conversation when it
          lands. Stoppable and redirectable while it runs; never a silent
          completion.
        </span>
      </div>

      <div className="landing-card landing-card-accent p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">06</span>  Anything that leaves the workspace asks first
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink)" }}>
          A push, a PR, an issue, a comment: Smithers shows exactly what it will
          do and waits for an explicit yes. Every time, never remembered.
        </span>
      </div>

      <div className="landing-card p-5">
        <strong style={{ display: "block", color: "var(--l-ink)", marginBottom: "0.3rem" }}>
          <span className="landing-brass">07</span>  What it cost is visible
        </strong>

        <span style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          What the run actually cost, in dollars, and what is left. No invented
          credit unit. Alpha usage is on us; see <a href="/pricing" className="landing-brass">pricing</a> for the rate card.
        </span>
      </div>
    </div>

    <div className="landing-killer p-6 mt-8" style={{ maxWidth: "40rem", marginInline: "auto" }}>
      <div className="landing-eyebrow" style={{ marginBottom: "0.6rem" }}>The one thing we will not trade</div>

      <p style={{ color: "var(--l-ink)", margin: 0 }}>
        It is an alpha. Things will be missing and things will break. What does not
        bend: Smithers never claims to have done something it did not do. If it
        cannot do the thing, it says so.
      </p>
    </div>
  </section>

  <section className="max-w-4xl mx-auto px-6 py-14" style={{ borderTop: "1px solid var(--l-line)" }}>
    <div className="text-center mb-10">
      <span className="landing-eyebrow">After you send it</span>

      <h2 className="landing-display mt-5" style={{ fontSize: "clamp(1.7rem, 3.6vw, 2.4rem)" }}>
        Honest expectations.
      </h2>
    </div>

    <div className="grid md:grid-cols-2 gap-5" style={{ maxWidth: "42rem", marginInline: "auto" }}>
      <div className="landing-card p-6">
        <div className="landing-eyebrow" style={{ marginBottom: "0.9rem" }}>What happens</div>

        <div className="flex flex-col gap-2.5" style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink)" }}>
          <span>A person reads the email</span>
          <span>Accepted handles are added to the allowlist by hand</span>
          <span>You sign in with GitHub and start in the workspace</span>
          <span>Alpha usage is subsidized: no card, no checkout</span>
        </div>
      </div>

      <div className="landing-card p-6">
        <div className="landing-eyebrow" style={{ marginBottom: "0.9rem" }}>What we are not promising</div>

        <div className="flex flex-col gap-2.5" style={{ fontSize: "0.9rem", lineHeight: 1.55, color: "var(--l-ink-muted)" }}>
          <span>A reply by any particular date</span>
          <span>A seat, because the alpha is small and deliberately so</span>
          <span>A queue position or a status page to refresh</span>
          <span>An automatic confirmation email</span>
        </div>
      </div>
    </div>

    <div className="text-center mt-10">
      <a className="landing-btn" href="mailto:will@smithers.sh?subject=Smithers%20alpha%20access&body=GitHub%20handle%3A%0A%0AWhat%20I%27d%20point%20Smithers%20at%20(repos%2C%20or%20the%20work%20I%20want%20moved)%3A%0A%0AWhat%20I%20run%20today%3A%0A">
        Request access →
      </a>

      <p className="mt-4" style={{ fontSize: "0.85rem" }}>
        Or write to <span style={{ fontFamily: "ui-monospace, monospace", color: "var(--l-ink)" }}>[will@smithers.sh](mailto:will@smithers.sh)</span> in your own words.
      </p>
    </div>
  </section>

  <section className="max-w-4xl mx-auto px-6 py-14" style={{ borderTop: "1px solid var(--l-line)" }}>
    <div className="landing-card p-7">
      <div className="landing-eyebrow" style={{ marginBottom: "0.75rem" }}>No allowlist required</div>

      <strong className="landing-display" style={{ fontSize: "1.4rem", display: "block", marginBottom: "0.6rem" }}>
        The runtime underneath is open source.
      </strong>

      <p style={{ marginBottom: "1.25rem", maxWidth: "38rem" }}>
        The hosted environment is gated. The durable orchestration runtime it is
        built on is MIT-licensed, needs no cloud, and runs on your machine today.
        If you are here because you want agents that survive a crash and can be
        rewound, start there. Nobody has to let you in.
      </p>

      <div className="flex flex-wrap gap-3">
        <a href="/guide/get-started" className="landing-btn">Install the open-source CLI</a>
        <a href="https://github.com/smithersai/smithers" className="landing-btn-ghost">Read the source</a>
      </div>
    </div>

    <p className="text-center mt-10" style={{ fontSize: "0.85rem" }}>
      <a href="/" className="landing-brass" style={{ fontWeight: 600 }}>Back to smithers.sh</a>
      <span style={{ margin: "0 0.6rem", color: "var(--l-ink-muted)" }}>·</span>
      <a href="/pricing" className="landing-brass" style={{ fontWeight: 600 }}>Pricing</a>
      <span style={{ margin: "0 0.6rem", color: "var(--l-ink-muted)" }}>·</span>
      <a href="/guide/what-is-smithers" className="landing-brass" style={{ fontWeight: 600 }}>What Smithers is</a>
    </p>
  </section>
</div>
