Subroutine — Productivity skill for Claude Code
A self-hosted, agent-native task and decision tracker for people and coding agents working on complex projects.
How to install Subroutine
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open simonholliday/subroutine and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Subroutine does
A self-hosted, agent-native task and decision tracker for people and coding agents working on complex projects. Install it, tell Claude "we use Subroutine now", and you never type a ticket.
Alternatives in Productivity
- Linear - Ticket Management — You are tasked with managing Linear tickets, including creating tickets from thoughts documents, updating exis 10k ★
- Ticket Workflow — Work on ticket: $ARGUMENTS 5.8k ★
- /strategy — Run an end-to-end strategy workflow with decision-quality outputs 2.3k ★
README
Subroutine
**A self-hosted, agent-native task and decision tracker for people and coding agents working on complex projects.**
Designed from the ground up so that a coding agent is a first-class user rather than an add-on: agents get accounts of their own, can file and claim work, and document findings. An agent learns the tool while using it.
Setup takes about a minute, and that is it
**Four commands, and most of the minute is waiting for downloads.**
$ uv tool install subroutine
$ subroutine init
$ claude plugin marketplace add simonholliday/subroutine
$ claude plugin install subroutine@subroutine
The first two put the program on your machine and make your instance; the last two give Claude Code the tools and the skill. **Adding the marketplace needs Git**, because that command clones a repository - the one prerequisite here that is Claude Code's rather than ours.
**Then start a fresh Claude Code session and tell it *"we use Subroutine now"*. That sentence is the setup.**
The skill that ships with the plugin has a section for exactly that moment, and its first instruction is to **ask only what cannot be undone and state the rest**. So your agent looks for an existing project before making one, proposes a key instead of interviewing you about it, skips the workspace question when there is only one workspace, marks the checkout so later sessions do not have to work out where they are, and writes a pointer into whichever file your agent reads at startup, so the next session finds all of it without being told.
From there you talk to your agent rather than to Subroutine: *"file that as a bug"*, *"what can I actually start?"*, *"what did we decide about retries?"*, *"write down why we rejected the other approach."* You never type a ticket, and you never have to learn a command to get any of what follows.
Keeping an eye on the work
You will want to see what is happening, though. Run `subroutine serve`, then `subroutine login link` for a
Related Skills
Archive Ticket
Move a resolved per-ticket scratchpad from tickets/ into tickets/archive/, then note the archival in SESSION-L
Aegis Issue Thread
Persistent issue/task threads as YAML files, integrated with sprint-tracker. Use this skill whenever the user
Mise Update
Update the installed mise workflow commands to the latest published version — fetches main from the canonical
Claudelingo
Learn a language in the dead time while Claude is working — a vocabulary quiz in the band above your Claude Co
Re Frame
You are working inside the RE-Frame framework — an in-house full-stack SPA framework built on native Web Compo
Not My Job
Agentic workflow plugins for tasks you'd rather not do yourself. Someone has to secure your secrets, sort your
Related Agents
Airbyte Manager
Manages self-hosted Airbyte deployments via the REST API CLI. Use when working with Airbyte sources, destinati
ZeroClaw Android
Run AI agents 24/7 on your Android phone. Native Rust core, 25+ providers (OpenAI, Claude, Gemini, Groq, DeepS
Senior Lead
Senior engineer. Use to build a Spec's Now features as a working slice: take the critical or complex parts you