selan.ai Gateway Reactor Browser
Apps

Docs · Paperclip

Run Paperclip on your company's accounts

Paperclip is a web app for running a company of AI agents. Here its Claude Code agents run on your company's Selan accounts, with no Claude login. It is one of the Selan apps.

Paperclip keeps your Selan token in its own database. It stores AI connections itself, so the launch saves the token as the API key of a connection called “Selan”, sealed with Paperclip's own key file. It goes nowhere else on disk. Each launch replaces the key with the current one. If you revoke the token, the connection stops working.

Get started

How do I run Paperclip with selan?

selan app paperclip

The first time, selan app prints the commit and the scripts and asks [y/N]: only y or yes approves, and Enter refuses. It installs Paperclip, starts it, and opens http://127.0.0.1:3100. Stop it with Ctrl-C. PAPERCLIP_PORT changes the port, and arguments after the app's name go to paperclipai run.

You need curl, node and npm, and Claude Code (claude) on your PATH for the agents. It runs on macOS and Linux; on Windows use WSL.

How do I run Paperclip without selan?

You need an API token, which an owner mints in control under Settings → API tokens. Read the script, then:

export SELAN_TOKEN=selanct_...
curl -fsSL https://raw.githubusercontent.com/selan-ai/selan-apps/main/paperclip/install.sh | bash
~/.selan/apps/paperclip/run.sh

How do I run Paperclip on a server?

Add the selan-apps plugin to Claude Code and ask for a deploy. deploy-google-cloud makes a Compute Engine VM in your project. deploy-hostinger uses a Hostinger VPS you already have, and it has not been tested against a real VPS.

A server has no session, so an owner creates an API token under Settings → API tokens and you paste it into a line that hides it. Claude never sees it. The skill keeps it in Secret Manager or in a file only root can read, and revokes it when you remove the deploy.

On a server Paperclip stays on localhost and has no login, so its port is never opened. You reach it through an SSH tunnel. On Google Cloud:

gcloud compute ssh selan-paperclip --project PROJECT --zone ZONE --tunnel-through-iap -- -N -L 3100:127.0.0.1:3100

On a Hostinger VPS:

ssh -N -L 3100:127.0.0.1:3100 root@HOST

Then open http://127.0.0.1:3100 on your own machine.

How it works

What does the launch do?

  1. Starts Paperclip. The first time it runs Paperclip's own setup, local and on loopback only.
  2. In every company, creates a connection called “Selan”, or updates its key if there is one. It uses the Anthropic Messages endpoint at the gateway, shared with all agents, with your company's models. Never a second connection.
  3. Binds every claude_local agent that has no AI connection to it. A company or agent you add while it runs is picked up within 15 seconds. An agent you point at another connection is left alone.

Paperclip's own model calls use the same connections.

What does Paperclip put on my disk?

Everything is under ~/.selan/apps/paperclip: node_modules/ with the pinned paperclipai, data/ with Paperclip's database, keys and files, npm-cache/, xdg/ and run.sh. Nothing is installed globally. Claude Code keeps its own sessions in ~/.claude, as it always does.

Which models, connectors and skills do the agents get?

The models are your company's catalog, listed on the connection from the gateway. The agents are Claude Code agents, so they use Claude Code's own connectors and skills.

Other agent types:

  • codex_local works when its command is a wrapper that runs selan codex "$@".
  • opencode_local needs workarounds that are not set up here.
  • claude_local with its command set to selan claude stays in “verifying”. Leave the command alone.
Claude models served from a Claude subscription work in Paperclip's agents. Its claude_local agents are Claude Code itself, so a Claude model answers normally. Hermes Agent is the app that does not.

What if Paperclip did not work?

  • It says SELAN_TOKEN is not set. By hand, export a selanct_ token first. selan app sets it for you.
  • It says Paperclip is not installed. Run install.sh first, or use selan app paperclip, which does both.
  • The agents stop answering. The token was revoked or expired. Run the launch again so the connection gets the current key.
  • The page does not open. Paperclip may be on another port; check PAPERCLIP_PORT. On a server, the tunnel has to be running.
  • An agent still asks for a Claude login. It is not a claude_local agent, or you pointed it at another connection.
  • Something else. Ask us.