Files
paperclip-docs/docs/connectors/openrouter.md
T
39633c2217 docs: connectors catalog, operator-first third revision (#124)
Connector catalog, setup guides, and shared access documentation,
followed by a final code-accuracy repair pass. This PR does not change
application behavior.

## Final accuracy pass

Checked against shipped Paperclip `v2026.916.0`, commit
`dffc2b3ca1b9e88fa21cb17493083e682dffd1ca`, rather than the dirty local
checkout or the earlier canary baseline.

- Corrects connector/method-specific identity choices, human audiences,
and managed GitHub versus PAT scope and verification.
- Explains that **Always allow** covers different arguments for the same
agent/action/connection, with project scope when present; uses actual
button labels and removes the test-panel control from review
instructions.
- Qualifies new-action quarantine, including safe-default read
exceptions. Removes unconditional approval guarantees.
- Separates provider channel/repository reach from Paperclip sender
authorization.
- Completes sandbox sign-in and model credential-selection instructions
from the current UI implementation.
- Repairs Notion's hub summary, removes incomplete optional
Notion/Sentry client-registration procedures, and corrects Linear's
provider-versus-Paperclip attribution.
- Removes unsupported Postman tier claims, contradictory Cloudinary/Mem0
verification assertions, API-equivalence claims, and overbroad
successful-test assurances.
- Retains Supabase's required project reference: both released method
definitions explicitly require it. An earlier review suggested
otherwise; release code is authoritative here.
- Updates the release baseline and removes draft commit chronology from
the public introduction.

## Availability and remaining runtime gates

- **Google:** Verification is pending. Per the product-owner
clarification, authorization can continue where Google offers an
Advanced option; this is not available for every account and does not
override Workspace policy or other Google prerequisites. Notices on the
hub and all Google guides now distinguish an unverified-app warning from
blocked authorization.
- **Slack is available but not yet fully functional; follow-up fixes are
planned.** For agent tools, the released OAuth endpoint/scope defaults
differ from Slack's documented MCP contract. The page now warns against
treating that route as production-ready and removes the misleading
bot-scope walkthrough. Chat-channel bot setup remains separate.
Engineering must reconcile the integration and run OAuth plus one read
before removing this warning. Source:
https://docs.slack.dev/ai/slack-mcp-server/
- No credentialed connector run was performed in this pass. Code
consistency, provider documentation, UI rendering, and successful live
execution are separate evidence levels. No claim of runtime
certification for all connectors.

## Validation

- Root build: 253 crawlable documentation pages.
- Full `docs:test`: all eight suites passed locally, including
root/subpath routes, sitemap history, fingerprints, navigation, skill
source blocks, crawlable links, doc-link resolution, and SEO metadata.
- Internal-link lint: 258 Markdown files; no broken internal links.
- Latest cleanup: full build, all eight docs:test suites, internal-link
lint and diff whitespace checks passed; 1,878 link-resolution checks.
- Fixed the Calendar MCP reference URL; browser-checked the five
inconclusive external destinations (Miro article loads; Asana, Google
Cloud, OpenAI and xAI reach sign-in/console screens). Authenticated
destinations were not tested beyond those screens.
- Replaced the Sandbox providers editorial TODO with a scope note and
removed the CLI overview's unfinished-guide announcement.
- Browser client navigation: 687 checks passed using installed Chrome.
Initial launch lacked the downloaded Playwright browser; rerun used
`DOCS_CHROMIUM_PATH` without changing the tests.
- Nine representative connector/shared pages at 1440px and 390px: HTTP
200, one article H1, no page-level horizontal overflow. Mobile
screenshot inspected; approval page opened in the Codex browser.
- Navigation audit reports three existing non-connector orphan files;
this patch does not alter those files or their navigation.

The previous revision's provider-page expansion, Google shared setup
guide, navigation additions, and accidental node_modules-symlink cleanup
remain in this PR. Internal review ledgers remain outside the
publication branch. No merge or production deployment authorized.

---------

Co-authored-by: DevRel Gemini <[email protected]>
Co-authored-by: Paperclip <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Co-authored-by: Michael Nguyen <[email protected]>
2026-09-16 22:19:14 -10:00

5.2 KiB

seo_title, seo_description
seo_title seo_description
OpenRouter Connector Give agents model access through OpenRouter with an API key. Runtime and model-prefix requirements, assignment, a bounded test, and fixes.

OpenRouter

An OpenRouter connection gives agents a credential that routes to many model providers through one account. It is model access, not a set of tools — there are no actions to permit.

OpenRouter is API key only. There is no subscription sign-in for this provider, and Paperclip says so on the sign-in screen.

Before you connect

  • An OpenRouter account with credit or billing set up, and an API key from OpenRouter keys.
  • An agent that runs on the OpenCode runtime. This credential is only usable by an agent whose harness resolves to OpenCode.
  • A model id that starts with openrouter/. This is a hard requirement, not a convention — Paperclip treats an OpenRouter connection as incompatible with a model id that lacks the prefix.

Connect OpenRouter

  1. Open Connectors and select OpenRouter.
  2. On the Access step, choose whether the credential is Personal or Company shared, and which agents may use it.
  3. Paste the API key. Paperclip stores it as a secret and it is not readable afterwards.

Assign the credential

  • Set it as your default for the provider, and agents configured to use the responsible user's connection draw on each person's own account.
  • Bind a specific shared connection to the agent so eligible runs use that account.

A specific binding is not unconditional. Each run through it must satisfy all three, or be refused:

Requirement Why a run fails without it
The connection is Company shared A specific binding must point at a company-shared account; the older personal-account binding is a legacy format the current interface no longer creates
The run has a responsible user who may use the credential The human sharing audience governs every binding — "This credential is not shared with the responsible user"
The connection is installed for that agent (or company-wide) Otherwise "This connection is not permitted for this agent"

A binding cannot substitute for a responsible user: with nobody responsible there is nobody for the check to evaluate.

Then set the agent's model to an openrouter/-prefixed id, for example openrouter/anthropic/claude-sonnet-4.5. The provider and model choice happens in the agent's configuration; the connection only supplies the credential.

Warning: Authenticating successfully does not mean a particular model is available to you. OpenRouter decides which upstream models your account can route to, based on its own availability, your credit, and any provider-specific requirements. A key that works for one model can be refused for another.

Try it

Reply with the single word: ready

Run it on an agent with an openrouter/-prefixed model, after noting which AI connection that agent is configured to use.

A reply proves an OpenRouter credential was accepted, the runtime and model prefix are compatible, and the checks above passed — Paperclip refuses an ineligible binding rather than falling back to another account. It does not prove which OpenRouter account was charged; Paperclip does not surface that attribution per run, so check the activity and credit balance in your OpenRouter account if you need to confirm it.

If it fails, change only one thing at a time — the model id is the most common cause.

Note: Illustrative task, not a recorded test result.

Troubleshooting and limitations

Problem Likely cause Fix
"Select an AI connection compatible with this harness and model" The model id does not start with openrouter/, or the agent is not on an OpenCode runtime Fix the model id, or move the agent to an OpenCode runtime
There is no subscription option Expected. OpenRouter is API key only Use an API key
"Connect an account and choose your personal default" The agent uses the responsible user's connection and that person has no default Connect an account and mark it as your default
"This run needs a responsible user to select an AI connection" The run has no responsible person to evaluate the credential checks against Give the work an eligible responsible user. Binding a shared connection does not work around this
The key works but one model is refused OpenRouter is not routing that model for your account Choose another model, or check the model's requirements with OpenRouter
Runs fail once usage rises OpenRouter credit is exhausted or a rate limit applied Top up or check limits in your OpenRouter account
Status needs attention The key was revoked or rotated Reconnect with a current key

Limitations: one connection is one OpenRouter account, and it grants no tool access. Only openrouter/-prefixed models are usable with it. Which upstream models are reachable is OpenRouter's decision, not Paperclip's.