v0.6.1 macOS · Linux · MIT

A harness for Android development.

Run everyday Android dev workflows with coding agents, each in its own git worktree, and track them all from one control pane.

Apple Pie uses your current Claude Code subscription to run the workflows Android developers repeat every day like turning a ticket into a pull request, answering review comments and reworking a change.

$ curl -fsSL …/install.sh | bash
Watch the demo

DEMO · 0:24

Everything in one control pane.

Every workflow runs in its own git worktree, so several can run side by side without touching your checkout. A single control pane shows what each agent is doing and pulls you in only at the moments that need a developer.

THE DASHBOARD

From the Apple Pie dashboard you can:

The agents are in different stages in the dashboard
NEEDS YOU
A plan to approve, questions to answer, changes to review, comment fixes to preview, or a run that got stuck.
RUNNING
Agents planning, implementing, or verifying.
PR READY FOR REVIEW
Open pull requests. Moved to NEEDS YOU when the pull request has open comments.
CLOSED
When a pull request is merged or closed, it appears here. The worktree is cleaned up.
STOPPED
When you decide to stop an agent from the TUI or CLI. The worktree is cleaned up.

Agents keep moving until they hit a decision that actually needs a developer; then the row moves to NEEDS YOU. Everything is ↑↓ to move, enter to act, esc to back out; enter on a row opens its menu.

SAFETY

You stay in control.

How each workflow runs, every gate, and the full state machine are in docs/workflows.md.

BUILT FOR ANDROID

Built for Android.

General coding agents don't know what verifying an Android change means. Apple Pie's stages do.

TRUSTED BY MOBILE DEVELOPERS AT

INSTALL

Install

macOS and Linux. Windows is not supported. Then pie init to configure your repo.

$ curl -fsSL …/install.sh | bash

PREREQUISITES

FIRST STEPS

Never run this before? Do these eight steps in order. Nothing here touches your repo or opens a PR until step 8.

  1. 1

    Check your prerequisites.

    $ claude --version && gh auth status && git --version

    Claude Code has to have been launched and signed in at least once. gh should say Logged in. Android Studio only matters for tickets that need an emulator, so skip it for now.

  2. 2

    Install, then confirm the binary is on your PATH.

    $ curl -fsSL https://raw.githubusercontent.com/Apple-Pie-AI/pie-tui/main/install.sh | bash
    $ pie --help

    Check: pie --help prints the command list. If you get command not found, ~/.local/bin isn't on your PATH — the installer prints the exact line to add for your shell.

  3. 3

    Configure it against your Android repo.

    $ cd ~/path/to/your/android-repo
    $ pie init

    The wizard asks, in order: repo path (pre-filled with your current directory — accept it), branch pattern (accept {ticket}-{slug}), plan review gate (say yes for your first few runs — it's the single best beginner default), three optional models (leave all blank to use Claude Code's defaults), Anthropic API key (optional — leave blank to use your logged-in claude session; if you do enter one it goes to the OS keychain, never the config file), and telemetry consent.

    Check: ls -l ~/.pie/config.toml shows a 0600 file.

  4. 4

    Run the connectivity check.

    $ pie doctor

    Check: the three required checks — git origin, claude, gh — pass. The optional ones (adb, emulator, AVD name) can fail for now; they only matter once a ticket needs instrumented tests.

  5. 5

    Write your first ticket as a markdown file.

    $ cat > ~/first-ticket.md <<'EOF'
    # Add a TODO comment to the main Activity
    
    Add a single `// TODO: hello from Apple Pie` comment at the top of the
    app's main Activity class. Nothing else.
    EOF

    The ticket id comes from the filename: uppercased, with every run of non-alphanumeric characters collapsed to a dash. So first-ticket.md becomes FIRST-TICKET, and that id names the worktree, the log file, and the branch.

  6. 6

    Run it — safely.

    $ pie run ~/first-ticket.md --dry-run --review-plan

    Five things make this safe to try: no Jira account is involved; --dry-run skips push and PR entirely, so nothing reaches GitHub; --review-plan stops the run before a single line of code is written; all work happens in ~/.pie/worktrees/FIRST-TICKET, not in your checkout; and the change itself is one comment line.

    Check: run git status in your own repo. It's untouched.

  7. 7

    Watch it from the dashboard.

    $ pie

    Bare pie opens the TUI. Tickets are grouped under NEEDS YOU, RUNNING, READY FOR REVIEW, and STOPPED; the footer lists the keys. Press enter on your ticket to read the full plan, approve it, and watch it work through to READY FOR REVIEW.

    Check:

    $ cat ~/.pie/plans/FIRST-TICKET.md              # the plan it wrote
    $ git -C ~/.pie/worktrees/FIRST-TICKET diff     # the change it made
    $ pie logs FIRST-TICKET                         # the whole session
  8. 8

    Do it for real.

    Drop --dry-run on a second local ticket to get an actual pull request, or connect Jira and run pie run PROJ-123.

    Whichever you pick, the guarantee is the same: it stops at review. Apple Pie never merges anything. When you're done experimenting, choose Stop & clean up from a ticket's menu in the TUI to stop it and remove its worktree.

  9. Manual install

    Download the binary for your platform:

    # macOS (Apple Silicon)
    $ curl -fsSL -o pie https://github.com/Apple-Pie-AI/pie-tui/releases/latest/download/pie_darwin_arm64
    # macOS (Intel)
    $ curl -fsSL -o pie https://github.com/Apple-Pie-AI/pie-tui/releases/latest/download/pie_darwin_amd64
    # Linux (x86-64)
    $ curl -fsSL -o pie https://github.com/Apple-Pie-AI/pie-tui/releases/latest/download/pie_linux_amd64
    # Linux (arm64)
    $ curl -fsSL -o pie https://github.com/Apple-Pie-AI/pie-tui/releases/latest/download/pie_linux_arm64

    Then install it to your user bin (creates the folder, no sudo):

    $ mkdir -p ~/.local/bin && mv pie ~/.local/bin/

    If ~/.local/bin isn't on your PATH yet:

    $ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

    On macOS, if the first run is blocked with zsh: killed or a Gatekeeper warning, clear the download quarantine flag:

    $ xattr -d com.apple.quarantine ~/.local/bin/pie 2>/dev/null

    Versioned archives (.zip for macOS, .tar.gz for Linux) and a SHA-256 checksums.txt are attached to every release.

  10. Build from source

    Apple Pie is a single Go binary with no cgo. It shells out to the real tools rather than wrapping their SDKs: your git, your gh, your claude, your Android SDK — same binaries, same auth, same config you already use.

    $ git clone https://github.com/Apple-Pie-AI/pie-tui && cd pie-tui
    $ make build      # → ./pie
    $ make install    # → ~/.local/bin/pie
    $ make test       # go test ./...

    Go 1.26.2 or newer. On an older toolchain, prefix with GOTOOLCHAIN=auto and Go will fetch the right one.

COST & PRIVACY

Cost, telemetry, and privacy.

Your existing subscription

Apple Pie runs on your existing Claude Code subscription or API key. There's no separate account and no markup. Each ticket costs a full working session's worth of tokens, so five parallel tickets is roughly five concurrent sessions. Start with one.

Telemetry is opt-in

Asked once during pie init. When enabled it sends three events — run_started, run_completed, tui_opened — carrying a randomly generated device id, your OS and architecture, the Apple Pie version, and for a completed run its outcome state, duration in seconds, and whether it errored. No ticket content, no file paths, no repo or branch names, no code. Turn it off any time with telemetry_enabled = false in ~/.pie/config.toml.

New here? Start with first steps.

$ curl -fsSL …/install.sh | bash