GB-Power-Market-JJ oneshot-ship
Ship code autonomously with oneshot CLI -- a single command that plans, executes, reviews, and opens a PR. Runs over SSH or locally. Use when the user wants to ship code changes, automate PRs, or run an autonomous coding pipeline with Claude and Codex.
git clone https://github.com/GeorgeDoors888/GB-Power-Market-JJ
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.claude/skills && cp -r "$T/openclaw-skills/skills/adwilkinson/oneshot-ship" ~/.claude/skills/georgedoors888-gb-power-market-jj-oneshot-ship && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/openclaw-skills/skills/adwilkinson/oneshot-ship" ~/.openclaw/skills/georgedoors888-gb-power-market-jj-oneshot-ship && rm -rf "$T"
openclaw-skills/skills/adwilkinson/oneshot-ship/SKILL.mdoneshot CLI
Ship code with a single command. oneshot CLI runs a full autonomous pipeline: plan (Claude) -> execute (Codex) -> review (Codex) -> PR (Claude). Works over SSH to a remote server or locally with
--local.
When to use this skill
- User wants to ship a code change to a repository without manual coding
- User wants to automate the plan/implement/review/PR workflow
- User mentions "oneshot" or "oneshot CLI" or wants autonomous code shipping
- User wants to delegate a coding task to run on a remote server or locally
Installation
bun install -g oneshot-ship
Setup
Run
oneshot init to configure SSH host, workspace path, API keys, and model preferences. Config is saved to ~/.oneshot/config.json.
Repos on the server should be organized as
<org>/<repo> under the workspace path:
~/projects/ my-org/my-app/ my-org/my-api/
Server prerequisites
- Bun
- Claude Code CLI
- Codex CLI
- GitHub CLI (authenticated)
andANTHROPIC_API_KEY
in environmentOPENAI_API_KEY
Usage
Basic usage
oneshot <repo> "<task>"
With Linear ticket
oneshot <repo> <linear-url>
Fetches the ticket as context and updates its status after the PR is created.
Local mode
oneshot <repo> "<task>" --local
Runs the pipeline directly on the current machine instead of SSH-ing to a server. Requires Claude Code CLI, Codex CLI, and GitHub CLI installed locally.
Background mode
oneshot <repo> "<task>" --bg
Fire and forget -- runs detached on the server (SSH mode only).
Dry run
oneshot <repo> --dry-run
Validates the repo exists without running the pipeline.
Override model
oneshot <repo> "<task>" --model sonnet
Pipeline steps
- Validate -- checks the repo exists, fetches latest from origin
- Worktree -- creates a temp git worktree from
, auto-detects and installs deps (bun/pnpm/yarn/npm)origin/main - Plan -- Claude reads the codebase and CLAUDE.md conventions, outputs an implementation plan
- Execute -- Codex implements the plan
- Review -- Codex reviews its own diff for bugs, types, and security issues
- PR -- Claude creates a branch, commits, pushes, and opens a PR
The worktree is cleaned up after every run.
Configuration
~/.oneshot/config.json:
{ "host": "user@100.x.x.x", "basePath": "~/projects", "anthropicApiKey": "sk-ant-...", "linearApiKey": "lin_api_...", "claude": { "model": "opus", "timeoutMinutes": 180 }, "codex": { "model": "gpt-5.3-codex", "reasoningEffort": "xhigh", "timeoutMinutes": 180 }, "stepTimeouts": { "planMinutes": 20, "executeMinutes": 60, "reviewMinutes": 20, "prMinutes": 20 } }
Only
host is required. Everything else has defaults.
Flags
| Flag | Short | Description |
|---|---|---|
| | Override Claude model |
| | Validate only |
| Run locally instead of over SSH | |
| Run in background (SSH mode only) | |
| | Help |
| | Version |
Customization
- Drop a
in any repo root to enforce conventions -- oneshot passes it as context to both Claude and CodexCLAUDE.md - Edit
,prompts/plan.txt
,execute.txt
,review.txt
to change pipeline behaviorpr.txt
Tips
- Use
for long-running tasks so you can fire and forget--bg - Linear integration auto-moves tickets to "In Review" and adds a PR comment
- Per-step timeouts prevent runaway processes (defaults: plan 20min, execute 60min, review 20min, PR 20min)
- oneshot CLI creates isolated worktrees so your main branch is never affected