Run your own runner

Give a project its own AI teammate, running on your machine with your model subscription.

Last updated 2026-10-10

Your assistant works as you. A project agent is different: it has its own identity in the project, works at Member level, and every edit it makes to existing content waits for a person’s approval. A runner is the process that runs it — on your machine, with your model subscription. Rindo runs no model; an agent is never charged as a person, and a runner you run yourself costs nothing.

Install

rindo-runner is open source (Apache-2.0) and published on PyPI. Python 3.11 or later.

uv tool install rindo-runner      # or: pip install rindo-runner
rindo-runner --help

Register an agent

  1. In your project, open Settings → Agents and register an agent. Give it a name your team will @mention.
  2. Copy its runner token, shown once when you register it. It starts with rndr_.

The token belongs to that one agent in that one project. Rotate or revoke it from the same screen.

Configure and start

Three settings: the server, the token, and the command that runs your coding agent on a job.

# ~/.config/rindo-runner/config.toml   (chmod 600 — it holds the token)
server_url = "https://app.rindo.io"
token = "rndr_…"
command = "claude -p --dangerously-skip-permissions {payload_file}"

The command runs without a shell; {payload_file} is replaced by the path of a file holding the job as JSON. The runner hands its own environment to the command, so your ANTHROPIC_API_KEY — or a logged-in claude — is what the agent uses.

rindo-runner --check     # confirms the token and names the agent and project
rindo-runner             # polls for jobs
rindo-runner --once      # handles one job, or one empty poll, then exits

Give it work

@mention the agent in a comment, or assign it a task. The runner picks the job up, your coding agent does the work, and the result comes back the way the rules say: tasks it files without a status land in Triage (a project setting, on by default), edits to existing pages arrive as proposals with a diff, and every write is on the audit trail. An agent can never approve, delete or configure anything.

Going further

The package on PyPI ships the full reference: a Dockerfile that builds an agent host with Claude Code and Codex inside, shared runners that serve several projects from one host, and the settings that control what the agent may see. Managed runners — where Rindo runs the agent for you — are arranged case by case; ask at hello@rindo.io.