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

# Opencode

> Run Opencode in a Superserve sandbox.

Opencode is an open-source terminal coding agent. Run it in a Superserve sandbox so its shell commands and file edits stay isolated from your machine.

## Via the console

1. On the [Secrets page](https://console.superserve.ai/secrets?utm_source=docs\&utm_medium=link), create a secret with the **Anthropic** provider and paste your API key — you only do this once, and the key never enters the sandbox.
2. Go to [console.superserve.ai](https://console.superserve.ai?utm_source=docs\&utm_medium=link) and click **Create sandbox**.
3. Pick the **`superserve/node-22`** template.
4. Under **Advanced Options → Secrets**, bind that secret to `ANTHROPIC_API_KEY`.
5. Create the sandbox, open its **Terminal**, and run:

   ```bash theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
   curl -fsSL https://opencode.ai/install | bash && opencode
   export PATH=/home/user/.opencode/bin:$PATH
   ```

## Via the SDK

```bash theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
npm install @superserve/sdk
export SUPERSERVE_API_KEY=ss_live_...
```

<CodeGroup>
  ```typescript TypeScript theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
  import { Sandbox, Secret } from "@superserve/sdk"

  // One-time: store your key as a secret. It never enters the sandbox.
  await Secret.create({
    name: "anthropic-key",
    value: "sk-ant-...",
    provider: "anthropic",
  })

  const sandbox = await Sandbox.create({
    name: "opencode",
    fromTemplate: "superserve/node-22",
    secrets: { ANTHROPIC_API_KEY: "anthropic-key" },
  })

  await sandbox.commands.run("curl -fsSL https://opencode.ai/install | bash")
  await sandbox.commands.run("echo 'export PATH=/home/user/.opencode/bin:$PATH' >> ~/.bashrc")
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
  from superserve import Sandbox, Secret

  # One-time: store your key as a secret. It never enters the sandbox.
  Secret.create(name="anthropic-key", value="sk-ant-...", provider="anthropic")

  sandbox = Sandbox.create(
      name="opencode",
      from_template="superserve/node-22",
      secrets={"ANTHROPIC_API_KEY": "anthropic-key"},
  )

  sandbox.commands.run("curl -fsSL https://opencode.ai/install | bash")
  sandbox.commands.run("echo 'export PATH=/home/user/.opencode/bin:$PATH' >> ~/.bashrc")
  ```
</CodeGroup>

Opencode reads `ANTHROPIC_API_KEY` as usual, but its value is a [stand-in token](/secrets/overview) — the real key is attached only on requests to Anthropic, never exposed to the agent.

Open the sandbox in the [console](https://console.superserve.ai?utm_source=docs\&utm_medium=link), launch the terminal, and run `opencode`.

## Persist sessions

```typescript theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
await sandbox.pause()
await sandbox.resume()
```
