Autoplay
Autoplay queues an issue for a self-hosted runner you install on your own machine or VPS. The runner picks up the job, reuses a configured local checkout (git worktree by default) or clones the repo, runs your coding harness (Claude Code by default), and opens a pull request for you to review. Autoplay never merges; you stay in control of what ships.
Requirements - Premium subscription, GitHub integration on the project, and at least one runner online (heartbeat within the last few minutes). See Set up a runner to get started.
How It Works
- You start Autoplay on an issue (from the issue page, AI chat, or GitHub)
- SprintFlint creates an Autoplay job and notifies your online runners
- A connected runner picks up the job
- The runner reuses a configured project path / worktree, or clones the repository if no path is set
- It runs your pluggable harness (Claude Code first) against the issue
- When the harness finishes, the runner opens a pull request; it never merges
- Progress and logs stream back to SprintFlint while the job runs
Self-hosted by design - The runner is the open-source vps-agent CLI that you run on hardware you control. Configure a local project path on the project (or a runner override) so jobs use git worktree add from your existing checkout — including local secrets such as master.key. SprintFlint never copies, logs, or stores those files; it only sends the path in the job payload. Clone-from-scratch remains the fallback when no path is configured.
Checkout modes
On the project (and optionally as a per-runner override) you can tell Autoplay how to source the working tree. The job payload includes source_mode, project_path, worktree_base, and use_worktree so the runner does not have to clone from scratch.
- Git worktree (default when a project path is set) —
git worktree addfrom the existing checkout so jobs share the object store and can see local config such asmaster.key - Existing local path — run the harness in the checkout itself
- Clone — current fallback; used when no path is configured, or when you choose it explicitly
SprintFlint only stores and sends the path strings. It never copies, syncs, or logs secrets. Checkout execution (worktree add/remove, dirty-tree handling) lives in vps-agent.
The Pluggable Harness
A harness is the coding tool the runner invokes to implement the issue. The runner ships with two:
- Claude Code (
claude) - the default; drives Anthropic's Claude Code CLI against the cloned repo - No-op (
noop) - a dry-run harness that clones and opens a PR without changing code, useful for verifying connectivity and git auth
You choose the harness when you configure the runner. See Set up a runner for harness selection and permission modes.
Connecting a Runner
Before you can use Autoplay, install and register a runner:
- Install the CLI:
npm install -g vps-agent - Register it with a token from the runner setup page in SprintFlint
- Start it:
vps-agent start(or--daemonto run in the background) - Confirm it shows online; it now picks up Autoplay jobs for your organisation
Full instructions, including prerequisites, git setup, and troubleshooting, live on the Set up a runner page.
Starting Autoplay
- Issue page - Click Autoplay on any issue
- AI chat - Ask to run Autoplay on a specific issue (same queue as the button)
- GitHub - Comment
@sprintflint implementon a linked issue or PR
Working with issues programmatically
The runner implements the issue and opens a pull request; it does not comment back on the issue itself. To read or change issues from your own tools or AI agents - add a comment, move an issue's status, create issues or sprints - use the SprintFlint MCP server. Drop one JSON block into Claude Code, Cursor, Claude Desktop, or Zed and your agent talks to SprintFlint natively. See AI integration for the MCP setup and the underlying REST API.
Troubleshooting
Autoplay button does nothing / stays queued
- Check that at least one runner is online; run
vps-agent statuson the host - Verify GitHub is connected and the project repo is configured
- Confirm your organisation has an active subscription
- Run
vps-agent doctorto check prerequisites and connectivity
Run already active
- Cancel the current run from the runner job logs, or comment
@sprintflint cancelon GitHub - Or use AI chat to cancel Autoplay on the issue
The PR was opened but the code looks wrong
- Autoplay opens a PR for review precisely so you can catch this; close or revise it like any other PR
- Try a more specific issue description; the harness works from the issue title, body, and comments
- Check the run logs to see what the harness did
Next Steps
- Set up a runner - Install, register, and configure the runner
- API Reference - Issue comments and integration
- GitHub Integration - PR linking and mentions