Fire and forget
Detach with --bg, over SSH to a dev box, or in GitHub Actions. Close your laptop; it keeps going and pings you when it lands.
open-source agent runtime
Hand oneshot a repo and a task. It plans, writes, reviews, and opens a PR in an isolated worktree, then hands you a receipt that proves the work held up. Detach it and walk away.
bun install -g oneshot-ship
$ oneshot acme/api "fix auth timeout" --bg
run 1779090434-rxw89j · detached
[1/8] validate ok
[2/8] worktree /tmp/oneshot-1779
[3/8] route codex · deep
[4/8] plan 3 files
[5/8] execute patched + tested
[6/8] draft PR #142
[7/8] review no major findings
[8/8] finalize ready for review
ONESHOT RECEIPT
run 1779090434-rxw89j
Why it is different
Detach with --bg, over SSH to a dev box, or in GitHub Actions. Close your laptop; it keeps going and pings you when it lands.
Every run records its plan, review outcome, policy verdict, the defaults it assumed, and a confidence rating. Trust the result without re-reading the diff.
Run locally, over SSH, or in CI. Fresh git worktree per run, durable ledger, policy gates, and an MCP server. Same contract, same receipt.
Quick start
Pick a backend: this machine, SSH to a box, or GitHub Actions. Run oneshot doctor to check it.
oneshot initRepo and task in. Add --bg to detach. Read the receipt when it lands.
oneshot acme/api "fix the login timeout" --bgRun it anywhere
Runs on this machine. Detaches with --bg and survives a closed terminal.
oneshot acme/api "task" --bg
Ship to a 24/7 dev box over SSH so runs survive your laptop entirely.
host: "user@your-box"
Zero-infra durable runs. Scaffolds a workflow that uploads the receipt.
oneshot gha init
Commands
--bg to detach, --workflow for a preset.--json or --html.--repo..oneshot/policy.json: protected paths, secret and gate checks.Full flags, configuration, and workflow presets live in the README.
Configuration
~/.oneshot/config.json.Set host to local to run here, an SSH target to use a box, or scaffold Actions with oneshot gha init. Repos resolve as owner/repo in either a nested or flat layout. Codex and Claude each stay on their configured frontier model; routing only varies effort.
Add a notify webhook or command and a detached run will ping you the moment its receipt is ready.
{
"host": "local",
"basePath": "~/projects",
"provider": "codex",
"routing": { "enabled": true },
"notify": {
"webhook": "https://..."
},
"codex": {
"model": "gpt-5.5",
"reviewModel": "gpt-5.5",
"reasoningEffort": "xhigh"
}
}