iterate
v0.2.5
Published
CLI for iterate
Readme
iterate
⚠️⚠️⚠️ Coming soon! npx iterate is a work-in-progress CLI for managing iterate.com agents ⚠️⚠️⚠️
CLI for Iterate.
Runs as a thin bootstrapper that:
- Resolves an
iterate/iteratecheckout. - Clones/install deps when needed.
- Loads
apps/os/backend/trpc/root.tsfrom that checkout. - Exposes commands like
iterate os ...anditerate whoami.
Requirements
- Node
>=22 gitpnpmorcorepack
Quick start
Run without installing globally:
npx iterate --helpInitial setup (writes auth + launcher config):
npx iterate setup \
--os-base-url https://dev-yourname-os.dev.iterate.com \
--daemon-base-url http://localhost:3001 \
--admin-password-env-var-name SERVICE_AUTH_TOKEN \
--user-email [email protected] \
--scope globalThen run commands:
npx iterate whoami
npx iterate os project listCommands
iterate setup- configure auth + launcher defaultsiterate doctor- print resolved config/runtime infoiterate install- force clone/install for resolved checkoutiterate whoamiiterate os ...iterate daemon ...
setup --scope global writes auth + launcher values into global; setup --scope workspace writes them into workspaces[process.cwd()].
Config file
Config path:
${XDG_CONFIG_HOME:-~/.config}/iterate/config.json
Config shape:
{
"global": {
"repoPath": "~/.local/share/iterate/repo",
"repoRef": "main",
"repoUrl": "https://github.com/iterate/iterate.git",
"autoInstall": true
},
"workspaces": {
"/absolute/workspace/path": {
"osBaseUrl": "https://dev-yourname-os.dev.iterate.com",
"daemonBaseUrl": "http://localhost:3001",
"adminPasswordEnvVarName": "SERVICE_AUTH_TOKEN",
"userEmail": "[email protected]"
}
}
}Merge precedence is shallow:
global -> workspaces[process.cwd()]
Repo checkout resolution
repoPath resolution order:
ITERATE_REPO_DIRworkspaces[process.cwd()].repoPathglobal.repoPath- nearest parent directory containing
.git,pnpm-workspace.yaml, andapps/os/backend/trpc/root.ts - default managed checkout path
${XDG_DATA_HOME:-~/.local/share}/iterate/repo
repoPath shortcuts in setup:
local- nearest local iterate checkoutmanaged- default managed checkout path
Environment overrides:
ITERATE_REPO_DIRITERATE_REPO_REFITERATE_REPO_URLITERATE_AUTO_INSTALL(1/trueor0/false)
Local iterate dev
If you run inside an iterate/iterate clone, the CLI auto-detects it. In that mode, default autoInstall is false.
You can pin explicitly:
npx iterate setup \
--os-base-url https://dev-yourname-os.dev.iterate.com \
--daemon-base-url http://localhost:3001 \
--admin-password-env-var-name SERVICE_AUTH_TOKEN \
--user-email [email protected] \
--scope workspacePublishing (maintainers)
From repo root:
pnpm --filter ./packages/iterate typecheck
pnpm eslint packages/iterate/bin/iterate.js
pnpm prettier --check packages/iterate
pnpm --filter ./packages/iterate publish --access public