Quickstart
Start a plan (or redeem an invite code), then from your app's project directory:
# 1. authorize this machine (opens a browser — no key to copy)
npx foxdog login
# 2. add FoxDog to your agent, once
claude mcp add foxdog -- npx -y foxdog mcp
# 3. tell your agent: "let's launch my app with FoxDog"
# it runs `npx foxdog status`, then the FoxDog conductor drives the launch
That's the whole setup. Everything after — scaffold, icon & screenshots, build, TestFlight, store forms, submit — is driven by FoxDog's tools, step by step.
Install & requirements
There's nothing to install. npx fetches foxdog from npm on demand and always runs the latest version. (A global install is optional: npm i -g foxdog.)
- Node.js 18+ — ships with
npx. You already have it if you run Claude Code or Codex. - An active FoxDog plan (or invite code) — the framework is served only to active subscribers.
- For iOS: a Mac with Xcode. For Android: Android Studio (the Android SDK) — works on macOS, Windows, or Linux.
Commands
npx foxdog status | Print connection + plan state as JSON. Your agent runs this first. |
npx foxdog start | Log in, connect your agent, and set up this project in one step (recommended). |
npx foxdog login | Browser device-flow login. Caches a per-machine key in ~/.foxdog. |
npx foxdog logout | Remove this machine's cached key. |
npx foxdog whoami | Show login status. |
npx foxdog mcp | Run the MCP proxy (stdio ↔ https). Your agent launches this — you don't run it by hand. |
Connect to Claude Code
One time, from your project:
claude mcp add foxdog -- npx -y foxdog mcp
This registers FoxDog as an MCP server. The -y auto-accepts the npx fetch so the agent can launch it unattended.
Connect to Codex
Add an MCP server to ~/.codex/config.toml pointing at the same command:
[mcp_servers.foxdog]
command = "npx"
args = ["-y", "foxdog", "mcp"]
(npx foxdog start can write this for you.)
The agent contract
Agents should run npx foxdog status first and branch on the JSON — don't improvise the launch with raw xcodebuild/fastlane, which skips FoxDog's tooling and gives a worse result.
{
"connected": false,
"plan_active": false,
"next_action": "Run `npx foxdog login` to connect FoxDog…"
}
connected: false→ runnpx foxdog login, then add the MCP server. Don't touch the build.connected: true, plan_active: false→ point the user to a plan or invite code. Don't ship manually.connected: true, plan_active: true→ call thefoxdog_startMCP tool and follow it one step at a time.
Before connection, the only safe action is a quick read-only review of the project — everything that does something runs through FoxDog's tools after connecting.
How auth works
- Device-flow login (RFC 8628).
npx foxdog loginopens a browser, you sign in, and this machine is authorized — there's no key to copy or paste. - Per-machine key. A machine-scoped license key is cached locally at
~/.foxdog/credentials.jsonand sent as a Bearer token to the MCP. Each device gets its own key, individually revocable from the dashboard. - Live entitlement. Every MCP request re-checks your subscription. An active plan serves the framework; a paused/canceled plan returns a "reactivate" message instead of content.
- Zero key custody. Your Apple
.p8and Google Play service-account JSON, and your app source, never leave your machine. FoxDog orchestrates; your Mac does the work.
Environment variables
FOXDOG_API_URL | API base. Default https://api.foxdog.ai. |
FOXDOG_MCP_URL | MCP endpoint. Default https://mcp.foxdog.ai/mcp. |
You won't normally set these — they exist for development and self-host testing.
Troubleshooting
command not found / npx can't find foxdog
Make sure Node 18+ is installed (node -v). npx ships with Node.
"Your FoxDog plan is not active"
Your subscription isn't active. Start or reactivate a plan at foxdog.ai/dashboard, or redeem an invite code. The connection resumes automatically once the plan is active.
The agent tries to build the app by hand
Tell it to run npx foxdog status first and to use the foxdog_start tool — see the agent contract. The bootstrap prompt in the docs sets this up for you.
Sign this machine out
npx foxdog logout, or revoke the device key from your dashboard.