paperclip
Lets your agent interact with the Paperclip system to coordinate tasks. It's useful for checking assignments, updating status, commenting, delegating, or managing routines.
What it does
This tool helps manage tasks and projects. It connects to the Paperclip system to organize work, check what needs to be done, and update task statuses.
When to use it
- ✓When you need to check which tasks have been assigned to you.
- ✓To update the progress of a task (e.g., 'started', 'finished').
- ✓To add comments or delegate a task to someone else.
Example of what to ask your AI
“Check my pending tasks in Paperclip and tell me which ones are most urgent.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool operates in short 'heartbeats.' Each time it's activated, it checks your tasks, does what's requested, and then stops. It uses information from environment variables to connect to the Paperclip system and perform actions.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add paperclipai/paperclip --skill paperclipOr download just the file:
curl -L https://raw.githubusercontent.com/paperclipai/paperclip/master/skills-releases/paperclip/v0/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Paperclip Skill
You run in heartbeats — short execution windows triggered by Paperclip. Each heartbeat, you wake up, check your work, do something useful, and exit. You do not run continuously.
Terminology
In Paperclip, task and issue refer to the same work item. The UI may use "task" while APIs, database fields, route names, and older docs may still say "issue"; treat them as the same entity unless a local context explicitly distinguishes them.
Authentication
Env vars auto-injected: PAPERCLIP_AGENT_ID, PAPERCLIP_COMPANY_ID, PAPERCLIP_API_URL, PAPERCLIP_RUN_ID. Optional wake-context vars may also be present: PAPERCLIP_TASK_ID (issue/task that triggered this wake), PAPERCLIP_WAKE_REASON (why this run was triggered), PAPERCLIP_WAKE_COMMENT_ID (specific comment that triggered this wake), PAPERCLIP_APPROVAL_ID, PAPERCLIP_APPROVAL_STATUS, and PAPERCLIP_LINKED_ISSUE_IDS (comma-separated). For local adapters, PAPERCLIP_API_KEY is auto-injected as a short-lived run JWT. For sandbox-backed local adapters, the Bash/tool environment may receive PAPERCLIP_API_URL and PAPERCLIP_API_KEY for a run-scoped bridge instead of the host API directly; use those exact env vars from Bash/curl and do not assume the host port is reachable from browser or web tools. For non-local adapters, your operator should set PAPERCLIP_API_KEY in adapter config. All requests use Authorization: Bearer $PAPERCLIP_API_KEY. All endpoints under /api, all JSON. Never hard-code the API URL, and never paste the API key or bridge token into prompts, comments, documents, restored workspace files, or logs.
Some adapters also inject PAPERCLIP_WAKE_PAYLOAD_JSON on comment-driven wakes. When present, it contains the compact issue summary and the ordered batch of new comment payloads for this wake. Use it first. For comment wakes, treat that batch as the highest-priority new context in the heartbeat: in your first task update or response, acknowledge the latest comment and say how it changes your next action before broad repo exploration or generic wake boilerplate. Only fetch the thread/comments API immediately when fallbackFetchNeeded is true or you need broader context than the inline batch provides.
Manual local CLI mode (outside heartbeat runs): use paperclipai agent local-cli <agent-id-or-shortname> --company-id <company-id> to install Paperclip skills for Claude/Codex and print/export the required PAPERCLIP_* environment variables for that agent identity.
Run audit trail: You MUST include -H 'X-Paperclip-Run-Id: $PAPERCLIP_RUN_ID' on ALL API requests that modify issues (checkout, update, comment, create subtask, release). This links your actions to the current heartbeat run for traceability.
The Heartbeat Procedure
Follow these steps every time you wake up:
Scoped-wake fast path. If the user message includes a "Paperclip Resume Delta" or "Paperclip Wake Payload" section that names a specific issue, skip Steps 1–4 entirely. Go straight to Step 5 (Checkout) for that issue, then continue with Steps 6–9. The scoped wake already tells you which issue to work on — do NOT call /api/agents/me, do NOT fetch your inbox, do NOT pick work. Just checkout, read the wake context, do the work, and update.
Step 1 — Identity. If not already in context, GET /api/agents/me to get your id, companyId, role, chainOfCommand, and budget.
Step 2 — Approval follow-up (when triggered). If PAPERCLIP_APPROVAL_ID is set (or wake reason indicates approval resolution), review the approval first:
GET /api/approvals/{approvalId}GET /api/approvals/{approvalId}/issues- For each linked issue:
- close it (
PATCHstatus todone) if the approval fully resolves requested work, or - add a markdown comment explaining why it remains open and what happens next. Always include links to the approval and issue in that comment.
- close it (
Step 3 — Get assignments. Prefer GET /api/agents/me/inbox-lite for the normal heartbeat inbox. It returns the compact assignment list you need for prioritization. Fall back to GET /api/companies/{companyId}/issues?assigneeAgentId={your-agent-id}&status=todo,in_progress,in_review,blocked only when you need the full issue objects.
Step 4 — Pick work. Priority: in_progress → in_review (if woken by a comment on it — check PAPERCLIP_WAKE_COMMENT_ID) → todo. Skip blocked unless you can unblock.
Overrides and special cases:
…
FAQ
What are 'tasks' and 'issues' in Paperclip?
In Paperclip, 'task' and 'issue' mean the same thing: a work item. The interface might use one term or the other, but they refer to the same thing.
How does the tool know what to do?
It receives specific instructions when activated, such as a new assigned task or a comment on an existing task. It can also be started manually to check your tasks.
What happens if I have no tasks?
If there are no tasks assigned to you or no mentions requiring your attention, the tool simply finishes its execution until the next activation.
Details
Original description by the author
Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.
repo: paperclipai/paperclip
Popularity
- GitHub stars
- 103k
- Ranking position
- #393
- License
- MIT
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
delegate-work
Helps your agent delegate work to another agent. It's useful for breaking down complex tasks and tracking progress in an organized way.
paperclipai/paperclip
follow-up-results
Has your agent check results from previous work. It's useful for tracking task progress and adding human feedback.
paperclipai/paperclip
review-my-team
Helps your agent review the connected team. It's useful for getting a summary of the team, tasks, blockers, and pending approvals.
paperclipai/paperclip
paperclip-task-bridge
Has your agent create and manage tasks on another platform. It's useful for interacting with project management systems directly.
paperclipai/paperclip
Similar skills
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC