Files
paperclip-docs/docs/guides/org/agent-adapters.md
T
d627632874 Release docs for paperclip v2026.1106.0 (#172)
Docs for parent release `v2026.1106.0` (`d69631b0`), up from
`v2026.1023.0` (`1b4c8038`): 515 parent commits.

## How this branch was built

The tag is 914 commits behind what `nightly` has drafted, so this branch
isn't cut from `nightly` HEAD. It starts at nightly commit `1952052`
(parent `043f2514`), 19 commits before the tag, then adds:

- the `main` hotfix (#160)
- the sync tooling from `nightly`
- docs for those 19 commits

Later nightly drafts stay on `nightly`, so no pages had to be removed.
No `nightly-draft/*` PRs are open.

## What changed

- **Runner by default:** new Claude, Codex, OpenCode and Pi agents start
on Paperclip Runner on supported hosts, with **Legacy runner** and
**Upgrade runner**.
- **Workspaces:** cleanup of finished workspaces, optional Git
expiration, and restore points for unsaved work. Restore points are off
by default.
- **New pages:** Prompt injection prevention, Google Workspace, GitHub
Copilot, Speko, Braintrust, Daytona, Ditto and Unikraft.
- **Breaking and upgrade notes:** the run history limit, Sentry run
failures off by default and the DSN variables, the Docker start command
for custom images, `--yes` on `instructions-file:delete`, and slower
migrations on large instances.
- **Also covered:** project repositories as skill sources, roster bulk
edit, Artifacts V1 (experimental, off by default), composer dismissal,
`expectedStatusVersion`, `unexecuted_review_stage`, and plugin workspace
providers.
- **Changelog:** a v2026.1106.0 entry in `reference/changelog.md`.

## Older text corrected

These were wrong at the tag, and most are also wrong on the live site:

- which permissions let an agent read a peer's configuration or change
instructions (`api/agents.md`)
- `decideNowCount`, which doesn't exist; the field is `deskBadgeCount`
- `file-resources` routes, which are board-only
- the **Create project** dialog fields, a CEO rule the code doesn't
enforce, and where a terminated agent's reports appear
- `instructions-file:put` and `:delete` examples that always failed
(`cli/agent.md`)
- a curl example that returned `422` (`api/cases.md`)
- Google Workspace **Reconnect** instructions, which claimed it reopens
the service picker
- the `permissionKey` table, which listed 8 of 21 keys
- drafting text at the end of `api/agents.md`

## ⚠ Please check these

- **Product behaviour that may be a parent bug.** The docs now describe
the tag's code, which you may prefer to fix upstream:
- The project **Environment** dropdown saves a choice, but runs ignore
it (`experimental/environments.md`).
- `environments:manage` is granted by roles but no environment route
checks it.
- `suggest-changes` is documented as agent-only, because only agents
have a consent path. Company skill policy decides skill edits.
- **Reader-visible mismatches in the parent UI.** The docs follow the
code. Upstream copy still mentions a "Built-in agents tab", says Copilot
"awaits qualification", and tells people to "Reconnect Google Workspace
to change access".

## ⚠ Post-tag leaks removed

Nothing to remove from an already-drafted page: post-tag surfaces such
as 1Password, Vercel, Supabase deploy, custom gateway onboarding and
Artifacts V1 as default never came onto this branch. Authors left out
post-tag hunks of the next nightly draft, and the reasons are in the run
notes.

## ⚠ Drift

None. Zero findings at the tag, from a full parent snapshot.

## ⚠ Verification Failures

The tag-accuracy gate reports one leak and nine review entries. None is
a real failure:

- **Leak:** `reference/cli/service.md`, `paperclipai payload and`. This
is a false positive; it's prose from a real message at
`cli/src/commands/service.ts:184`.
- **Review, 8 new connector pages:** the gate can't confirm new pages.
Reviewers confirmed each surface exists at the tag.
- **Review, `local_tools`:** an example value from the tag's Runner
README.

Not provable from code, and kept deliberately:

- `sandbox-providers.md` uses `sandbox.yaml`. The tag's README says
`install.yaml`, which returned 404 when checked. The upstream fix is
post-tag.
- The Google Workspace row about older OAuth brokers rests on release
notes and a design doc. The broker isn't in this repo.
- External claims about provider behaviour (for example Braintrust,
Daytona, Unikraft and Google scopes).

## ↻ Renames detected

None. The rename helper wasn't run: the 19-commit delta adds no new
adapter, skill, or plugin directories that it would check.

## Verification

All checks read a checkout pinned to the tag.

- **First round:** authors, a release-notes audit, an audit of
corrections stranded on `nightly`, an audit of 321 lines the last
realign dropped from `main` (about 130 checked directly in code), and
six fresh verifiers.
- **Second round:** seven new verifiers re-checked every changed area,
tracing behaviour rather than matching labels, and fixed about 50 more
defects. That volume means more may remain.
- **Limits of that second round:**
- Each verifier reported what it only string-matched. That includes
parts of Artifacts V1, the **Upgrade runner** notice, Copilot run
behaviour, and some Plugin SDK contract text.
  - The second-round fixes themselves weren't reviewed by a third round.
- **Gates:** `docs:build`, `docs:test` and `sync:check` pass.
- **Nothing was run against a live instance.** All of this comes from
reading code.

## Screenshots

**196 of 278 screenshots are stale and none were recaptured.** The list
is in `SCREENSHOTS_PENDING.md`. Some visibly differ from the text, such
as the removed **Run with provider trace** button and the old roster
tabs.

## After merge

1. Keep the PR title as is: `tag-docs-release.yml` reads the version
from it.
2. Confirm the `docs/v2026.1106.0` tag exists.
3. Run `node scripts/sync/realign-nightly.mjs release/v2026.1106.0
--push`, then audit for dropped lines and duplicated paragraphs, and set
`nightly` state back to `branch_mode: nightly`.
4. Check that `docs.paperclip.ing` serves the release: a new page, a new
claim, and the changelog's top entry.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: DevRel Gemini <[email protected]>
Co-authored-by: Paperclip <[email protected]>
Co-authored-by: Dotta <[email protected]>
Co-authored-by: ClaudeCoder <[email protected]>
2026-11-07 13:02:42 +01:00

17 KiB

paperclip_version, seo_title, seo_description
paperclip_version seo_title seo_description
v2026.1106.0 Choosing an Agent Adapter Compare the adapters that run your agents — Claude Code, Codex, OpenCode, HTTP webhook and more — and pick the right bridge for each role you hire.

Agent Adapters

When you create an agent in Paperclip, one of the first things you configure is its adapter. The adapter is the bridge between Paperclip and the AI system that actually runs your agent — it tells Paperclip how to launch the agent, how to pass it work, and how to receive results back.

Think of it like a power adapter for different countries. The electricity (Paperclip's task system and org chart) is the same everywhere, but the plug you need depends on the socket (the AI runtime you're connecting to). Claude Code needs one configuration, OpenAI Codex needs another, and a custom cloud-based agent needs a third.

Without an adapter, an agent is just a record in a database. With one, it's a working member of your team.


Adapter comparison

Adapter Best for Requires
claude_local Most users — runs Claude on your Mac Claude Code installed, Anthropic API key
codex_local OpenAI users — runs Codex on your Mac Codex CLI installed, OpenAI API key
gemini_local Gemini users — runs Gemini CLI on your Mac Gemini CLI installed, Google credentials
opencode_local Multi-provider flexibility, switchable models OpenCode CLI installed, relevant API keys
cursor Cursor Agent CLI with resumable local runs Cursor Agent CLI installed and authenticated
paperclip_runner Native sessions and Paperclip task tools Runner enabled, prepared execution environment, compatible provider credential
pi_local Pi users wanting Pi's built-in tool set Pi CLI installed, relevant API keys
grok_local xAI users — runs the Grok Build CLI Grok CLI installed, xAI API key or SuperGrok login
hermes_local Persistent memory, 30+ tools, 80+ skills Hermes Agent installed (Python 3.10+)

For most people getting started, claude_local is the right choice. It runs directly on your Mac using the same Claude that powers Anthropic's Claude.ai, and it only needs Claude Code plus an API key wired through environment variables.

Step 2 of the new agent dialog, "Choose an adapter", with a card for each available adapter

Note: On Paperclip Cloud, the new-agent picker offers Claude, Codex, OpenCode, and Grok. Grok agents connect with an xAI subscription or API key during setup.

Tip: Grok Build can also run on the experimental Paperclip Runner adapter (paperclip_runner) — choose Grok Build as the provider. It needs Grok Build installed at a fixed path in the execution environment. See Grok Build on Paperclip Runner.

Choose Paperclip Runner explicitly

For the native lifecycle, choose Paperclip Runner and then select the provider: Codex, OpenCode, Claude Managed, AWS AgentCore, ACP agents, or Grok Build. Under ACP agents, you can pick Grok Build, Claude, Cursor, GitHub Copilot, or Pi. To run agents on your Copilot plan, see GitHub Copilot. Existing direct-adapter agents keep their current runtime until you change the adapter.

You don't have to do anything for Codex, Claude Code, OpenCode, or Pi: a new agent on one of those harnesses runs on Paperclip Runner automatically when it runs on macOS or on Linux x64/ARM64 with GNU libc 2.39 or newer (OpenCode and Pi stay on the Legacy runner on Linux ARM64). To keep the classic codex_local, claude_local, opencode_local, or pi_local adapter, open Advanced and set Runner to Legacy runner. See New Codex and Claude agents use the Runner.

Already have a Claude Code or Codex agent on the Legacy runner? If its environment qualifies, its Harness / Runtime page shows an Upgrade to Paperclip Runner notice. Click Upgrade runner to switch while keeping its model, account, and compatible settings. See Upgrade an existing Claude or Codex agent.

The Runner is experimental: for providers other than Codex, OpenCode, ACP Claude, ACP Pi, and ACP GitHub Copilot, enableNativeRunner defaults to on for self-hosted instances and off for Cloud-managed instances. Cursor needs a prepared pinned runtime (paperclipai runtime setup cursor), an explicit model, and an Agent, Plan, or Ask session mode. Its token totals and per-run dollar cost are unavailable. See Paperclip Runner and native Cursor setup.

Agents run in full auto by default

Agents do their work while nobody is watching, so there's no one around to answer "may I run this command?" prompts. That's why the coding adapters start in full-auto mode: Claude Code, Codex, OpenCode, and Gemini CLI agents use their tools — including tools from connected services such as MCP servers — without stopping to ask for approval.

You can dial this back per agent in the adapter's configuration. Each adapter reference page explains its own switch:

Tip: Full auto is about approval prompts, not about what an agent is allowed to do in your company. Company permissions, budgets, and approval requirements still apply.


Claude Code (claude_local)

The claude_local adapter runs your agent using Claude Code — Anthropic's command-line AI tool — directly on your Mac. When Paperclip triggers a heartbeat, it launches Claude Code with the agent's context and task, waits for the run to complete, and reads back what Claude did.

What it means in practice: Your agent thinks like Claude, can read and write files on your computer, browse the web, and run terminal commands — all within the workspace of the task it's working on. It's capable of doing real coding work, writing documents, doing research, and more.

Note: On macOS and supported Linux machines, new Claude Code agents run on Paperclip Runner by default, as ACP agents → Claude. Pick Legacy runner under Advanced → Runner to use claude_local instead.

Prerequisites

Configuration fields

Working directory (deprecated) You won't see this field when you create a new agent. It only appears when you edit an older local agent that already has a working directory saved, and it's there as a legacy fallback. New agents get their folder from the task's project workspace instead, so set up a project workspace rather than pointing each agent at a folder. If an older agent still shows the field, you can leave it as it is or clear it once the agent's work lives in a project.

Model Which Claude model to use. If you leave it blank, Paperclip uses claude-opus-5-5. Some common choices:

  • claude-opus-5-5 or claude-opus-5 — most capable, best reasoning, highest cost. Good for your CEO or complex strategic agents.
  • claude-sonnet-5-5 or claude-sonnet-5 — fast, capable, lower cost. Good for worker agents doing routine tasks. Sonnet 5.5 needs Claude Code 2.1.284 or newer.

When in doubt, start with Sonnet for workers and Opus for the CEO. The effort options next to the model change with the model you pick — newer Opus, Sonnet 5 and 5.5, and Fable models add xhigh and max. See Claude Code — Reasoning Effort.

Environment variables The agent form includes an Environment variables section. Add ANTHROPIC_API_KEY there, either as a plain value or as a secret reference. If you're not sure what key name to use, ANTHROPIC_API_KEY is the standard one.

Timeout (sec) How long a single heartbeat run is allowed to take before Paperclip cuts it off. You'll find it on an existing agent's Harness / Runtime page under Run Policy → Advanced Run Policy. It starts at 0, which means no timeout. If you set one, leave plenty of headroom — complex coding tasks can run for 10 minutes or more, and a limit that's too low cuts agents off mid-task.

The Adapter card on an agent's Harness / Runtime page, showing the Claude Code adapter type, Model, and Thinking effort, with the top of the Configuration card below

Common errors

"Claude Code not found" — Claude Code isn't installed, or isn't on the system PATH. Install it from claude.ai/code and then click Run test in the Test your agent card (at the bottom of the agent's Harness / Runtime page) to verify Paperclip can find it.

"API key invalid" — Check that the environment variable name matches exactly what you've configured, and that the key itself starts with sk-ant-. Anthropic keys are case-sensitive.

"Timeout" — The heartbeat ran longer than your timeout setting. Increase the timeout value, or break the task into smaller pieces so each heartbeat can finish faster.


Codex (codex_local)

The codex_local adapter runs your agent using OpenAI's Codex CLI on your Mac. It works the same way as claude_local but uses OpenAI models instead of Anthropic.

Note: On macOS and supported Linux machines, new Codex agents run on Paperclip Runner by default. Pick Legacy runner under Advanced → Runner to use codex_local instead.

Prerequisites

Configuration fields

The fields are the same as claude_local — mainly model selection and environment variables — but pointing to OpenAI instead of Anthropic. As with Claude Code, Working directory (deprecated) only appears when you edit an older agent that already has one saved.

Model examples for Codex:

  • gpt-5.6-sol — the default and the normal starting point
  • gpt-6.1-sol — the newest Codex model, with reasoning effort up to ultra
  • gpt-6-astra, gpt-6-sol, or gpt-6-luna — the GPT-6 family, with extra reasoning-effort levels
  • o4-mini — fast and cost-effective for routine tasks

See Codex — Models for the full list.

Codex local adapter configuration form


OpenCode (opencode_local)

The opencode_local adapter runs your agent using OpenCode — a flexible, open-source AI terminal tool that supports multiple providers. It lets you configure exactly which model and provider to use via the adapterConfig.model field in provider/model format.

When to use this: If you want to switch between providers easily, or use a model not available through claude_local or codex_local directly.

Note: On macOS and supported Linux x64 machines, new OpenCode agents run on Paperclip Runner by default, with provider: "opencode". Pick Legacy runner under Advanced → Runner to use opencode_local instead.

The configuration is similar to the other local adapters, with an additional Model field in provider/model format (e.g., anthropic/claude-opus-4-6 or openai/gpt-5.3-codex).


Other adapters you may see

Three built-in adapter types are marked "Coming soon" in the agent-config dropdown and can't be picked directly from the UI today. They're fully functional in the runtime — you just configure them via the API or an imported company export until the UI picker lands.

  • openclaw_gateway — remote OpenClaw instances reached over the WebSocket gateway protocol. Today, the normal path is the OpenClaw invite-prompt flow on the Company Settings page. See OpenClaw Gateway.
  • http — webhook-style invocation into your own service. Aimed at developers building custom agent integrations. See HTTP.
  • process — runs an arbitrary local command or script. See Process.

External adapter plugins can also be installed — they appear in the dropdown once loaded.


HTTP Webhook (http)

Info: The http adapter is currently not selectable from the agent-config dropdown. Configure it via the API or an imported company export for now.

The http adapter connects to a web server or cloud function that you control. When a heartbeat fires, Paperclip sends an HTTP request to your endpoint with the agent's context and tasks. Your endpoint processes the work and sends results back.

When to use this: When your agent lives in the cloud, runs on a different machine, or is built on a platform that accepts webhook calls.

Configuration fields

Webhook URL (url) The full URL Paperclip will call when a heartbeat fires. This must be publicly accessible or reachable from your Paperclip instance. It's the one HTTP-specific field shown in the Configuration card on the agent's Harness / Runtime page.

Headers (headers) Extra request headers — typically a secret token, so your server can verify the call came from Paperclip and not someone else. Set this in the adapter config through the API or a company export; the form doesn't show it.

Timeout (timeoutMs) How long Paperclip waits for a response, in milliseconds, before treating the heartbeat as failed. Also set through the API or a company export.

The Harness / Runtime page for an agent using the HTTP adapter, with HTTP selected under Adapter type

Note: The HTTP adapter is aimed at developers building custom agent integrations. If you're using a standard AI provider locally, claude_local or codex_local is the simpler choice.


Shell Process (process)

Info: The process adapter is currently not selectable from the agent-config dropdown. Configure it via the API or an imported company export for now.

The process adapter runs a command on the same machine as Paperclip. When a heartbeat fires, Paperclip executes the command you specify, passing the agent's context as stdin or environment variables.

When to use this: For custom scripts, local automation, or agents built on tools that don't have their own dedicated adapter.

Configuration fields

Command The executable command and any arguments. The command must be accessible from the machine running Paperclip.

Working directory Where to run the command.

Environment variables Additional environment variables to set for the process (e.g., API keys, paths).


Getting API keys

If you haven't set up an API key yet, here's how:

  1. Go to console.anthropic.com and sign in or create an account
  2. In the left sidebar, click API Keys
  3. Click Create Key
  4. Give it a name you'll recognise (e.g. "Paperclip")
  5. Copy the key immediately — it starts with sk-ant- and is only shown once

Store it somewhere safe (a password manager works well). You'll use the environment variable name ANTHROPIC_API_KEY when configuring the adapter.

Warning: Copy the key immediately after creating it. Anthropic shows it only once. If you lose it, you'll need to create a new one and update your adapter configuration.

  1. Go to platform.openai.com and sign in or create an account
  2. Click your profile icon in the top right, then click API keys
  3. Click Create new secret key
  4. Give it a name (e.g. "Paperclip") and click Create secret key
  5. Copy the key immediately — it starts with sk- and is only shown once

Store it somewhere safe. You'll use the environment variable name OPENAI_API_KEY when configuring the adapter.

Warning: Copy the key immediately after creating it. OpenAI shows it only once. If you lose it, you'll need to create a new one and update your adapter configuration.


You're set

You now understand what adapters are and how to configure the most common ones. The next guide covers execution workspaces — the isolated code environments that agents work within when doing file-based tasks.

Execution Workspaces →