---
title: "Paperclip on company accounts — selan app paperclip · Selan"
description: "Run Paperclip, a web app for a company of AI agents, on your company's Selan accounts: with selan app, by hand, or on your own server behind an SSH tunnel."
url: https://selan.ai/docs/paperclip
updated: 2026-10-29T13:52:13+02:00
---

Apps

Docs · Paperclip

# Run Paperclip on your company's accounts

[Paperclip](https://github.com/paperclipai/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](https://selan.ai/docs/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?

```bash
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](https://control.selan.ai/settings/access). Read the script, then:

```bash
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](https://selan.ai/docs/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](https://control.selan.ai/settings/access) 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:

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

On a Hostinger VPS:

```bash
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](https://selan.ai/contact).

## Related

-   [Apps](https://selan.ai/docs/apps): the catalog, the plugin and how an app is added.
-   [Hermes Agent](https://selan.ai/docs/hermes): the other app in the catalog.
-   [Models and providers](https://selan.ai/docs/providers): which of your company's accounts serve which models.
