Ship while you're
away from keyboard.
AFK dispatches an autonomous coding agent against your own repositories under hard, code-enforced guardrails — then hands you a reviewed draft pull request with before/after screenshots. Assign the work. Walk away. Come back to PRs.
Four steps between a sentence
and a pull request.
You describe the change in plain language. AFK handles dispatch, isolation, verification and packaging — and stops the moment it hits a guardrail.
Assign
Write the task and pick a repo. AFK reads its .afk/config.yml to know the rules of engagement.
Dispatch
A fresh sandboxed container clones the repo. The agent runs the task on an isolated branch — never on your machine.
Enforce
Cost, iterations, files changed and diff size are checked on every step. Cross a limit and the run halts — clean.
Review
You get a PR with the diff, verification output and screenshots. You merge — or comment /afk to iterate. Nothing self-merges.
Autonomous — with a
hand on the kill switch.
Every limit lives in version-controlled config and is enforced in code, not suggested to the model. This is what makes handing the keyboard over actually safe.
# the rules of engagement live in the repo limits: maxCost: 2.00 maxFilesChanged: 8 maxDiffLines: 500 maxIterations: 10 paths: allowed: ["src/**", "tests/**"] model: default: moonshotai/kimi-k2.5 pr: labels: ["afkgnt"] # opens a PR — never merges
You review a PR,
not a black box.
Every run comes back as a pull request you can actually reason about: the diff, the verification it ran (tests, lint, typecheck), and before/after screenshots rendered from a disposable preview of your app.
Self-hosted. Your keys.
Your machine.
AFK is a container you run. Point it at your model provider and your Git host — nothing leaves your infrastructure but the pull requests you asked for.
Hand over the keyboard.
Paste your access token and step into the control room. The agents are already awake.