theNetworkChuck

Paperclip Remote Gateway — Development skill for Claude Code

Development community

Zero-dependency reference implementation of Paperclip's async run gateway contract, with Claude Code as the runner.

How to install Paperclip Remote Gateway

This entry records only its repository, not the path inside it, so there is no exact command to give. Open theNetworkChuck/paperclip-remote-gateway and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Paperclip Remote Gateway does

Zero-dependency reference implementation of Paperclip's async run gateway contract, with Claude Code as the runner.

Alternatives in Development

  • Example Plugin — Reference implementation for plugin developers 14k ★
  • Hermes Paperclip Adapter — Paperclip adapter for Hermes Agent — run Hermes as a managed employee in a Paperclip company 1.8k ★
  • Symfony Messenger — Implement async message handling with Symfony Messenger 206 ★

README

paperclip-remote-gateway

A small, zero-dependency reference implementation of Paperclip's async **run gateway** contract, with **Claude Code** as the runner.

[Paperclip](https://github.com/paperclipai/paperclip) can drive an agent that lives on another machine through its `hermes_gateway` adapter. The adapter speaks a compact async protocol — create a run, watch it over Server-Sent Events, poll it as a fallback, stop it on timeout — and nothing in that protocol is actually specific to any one agent runtime. It is just *wake something, watch it, collect the answer*. This repository implements the server side of it in a single readable file.

The runner it wires up is a headless Claude Code session (`claude --print --output-format json`) running on its own machine, in its own home directory, with its own global configuration, skills, hooks, and subscription authentication. That is the part that is hard to get any other way: a Claude Code that is *fully itself* becomes a first-class Paperclip agent, woken by an issue assignment and reporting back through the Paperclip API like any other hire. Everything runtime-specific lives in one function, `spawnRunner()`, so the same server drives a different CLI with a small edit.


Quickstart

Requires [Bun](https://bun.sh). No dependencies to install.

git clone https://github.com/theNetworkChuck/paperclip-remote-gateway paperclip-remote-gateway
cd paperclip-remote-gateway

export GATEWAY_KEY="$(openssl rand -hex 32)"
bun start
# [gateway] listening on http://127.0.0.1:8643 — runner=/usr/local/bin/claude concurrency=1

Check it:

curl -s localhost:8643/health
# {"status":"ok","service":"paperclip-gateway"}

Wake it by hand:

RUN=$(curl -s -X POST localhost:8643/v1/runs \
  -H "Authorization: Bearer $GATEWAY_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"input":"Say hello and stop."}' | jq -r .run_id)

curl -s localhost:8643/v1/runs/$RUN -H "Authorization: Bearer $GATEWAY_KEY" |