Workflow-first installer for multi-platform AI agent environments.
Last updated: 2026-03-04.
cbx installs workflows, skills, wrappers, and rule files for:
- Codex
- Antigravity (Gemini)
- GitHub Copilot
- Claude Code
Official install targets: codex, antigravity, copilot, claude.
Skill install default is profile-based:
- default profile:
core - add
--skill-profile web-backendfor broader web/backend stack - add
--all-skillsfor full workflow + MCP catalog install
- What This CLI Manages
- Install
- Guided Init Wizard (
cbx init) - Quickstarts
- Scope Model (Global vs Project)
- Credential Model (
cbx_config.jsononly) - Postman and Stitch Setup Flows
- MCP Placement Matrix
- Command Reference
- Full Cleanup (
cbx remove all) - Troubleshooting
- Migration Notes
- Platform Docs
- Workflow files (
/plan,/create, etc.) - Skill folders
- Codex callable wrapper skills ($workflow-, $agent-)
- Platform rule files (
AGENTS.md,GEMINI.md, etc.) - Engineering artifacts in workspace (
ENGINEERING_RULES.md,TECH.md) - Managed MCP config for Postman and Stitch
Generated rule files are intentionally route-first and lazy about skill loading:
- inspect locally first
- route through native workflows or agents first
- execute directly for simple tasks
- load skills only when the user names one or the domain is still unclear
npm install -g @cubis/foundryRecommended environment setup:
export POSTMAN_API_KEY_DEFAULT="<your-postman-api-key>"
export STITCH_API_KEY_DEFAULT="<your-stitch-api-key>" # Antigravity StitchMCP only
cbx workflows config keys persist-env --service all --scope globalcbx init is the interactive guided installer for first-time setup and multi-platform onboarding.
cbx initWizard flow:
- Welcome screen (Cubis Foundry banner + version)
- Bundle selection
- Multi-platform selection (
codex,antigravity,copilot) - Skills profile selection (
core,web-backend,full) - MCP selection (
Cubis Foundry,Postman,Stitch) - Separate scope selection for Skills and MCP (
projectorglobal) - MCP runtime selection (
cbx mcp servelocal, Docker pull, Docker local build) when any MCP integration is enabled - Conditional Postman mode/key/workspace and Stitch key prompts
- Final summary + confirmation
Non-interactive default mode:
cbx init --yes --dry-run --no-bannerNon-interactive scripted selection:
cbx init \
--yes \
--dry-run \
--overwrite \
--no-banner \
--bundle agent-environment-setup \
--platforms codex,antigravity \
--skill-profile web-backend \
--skills-scope project \
--mcps cubis-foundry,postman,stitch \
--mcp-scope global \
--postman-mode minimal \
--postman-workspace-id null \
--mcp-runtime localcbx workflows install remains the canonical explicit/scriptable installer.
Use cbx init when you want step-by-step guided setup.
Detailed wizard behavior and platform matrix:
docs/cli-init-wizard.md
cbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode fullImportant:
- Do not use
--yesif you want interactive Postman workspace selection. - Interactive install can fetch your Postman workspaces and save the selected workspace as the active profile
workspaceId.
cbx workflows install --platform antigravity --scope global --bundle agent-environment-setup --postman --postman-mode fullThis also manages default StitchMCP wiring for Antigravity.
cbx workflows install --platform copilot --scope global --bundle agent-environment-setup --postman --postman-mode fullDefault install scope is global.
Behavior:
- Skills are installed in global platform skill directories.
- Workflows and agents are installed in project paths for active workspace behavior.
- Rule files remain workspace-oriented for current repo context.
- Engineering files (
ENGINEERING_RULES.md,TECH.md) are workspace files.
Codex:
- Global skills:
~/.agents/skills - Project workflows:
<workspace>/.agents/workflows - Project rules:
<workspace>/AGENTS.md - Global rules:
~/.codex/AGENTS.md
Antigravity:
- Global skills:
~/.gemini/antigravity/skills - Project workflows:
<workspace>/.agent/workflows - Project rules:
<workspace>/.agent/rules/GEMINI.md - Global rules:
~/.gemini/GEMINI.md
Copilot:
- Global skills:
~/.copilot/skills - Project workflows:
<workspace>/.github/copilot/workflows - Project rules:
<workspace>/AGENTS.mdand<workspace>/.github/copilot-instructions.md - Global rules:
~/.copilot/copilot-instructions.md
cbx_config.json is the single supported credentials/config source.
Paths:
- Global:
~/.cbx/cbx_config.json - Project:
<workspace>/cbx_config.json
Postman and Stitch now support multiple named profiles with active selection.
{
"postman": {
"profiles": [
{
"name": "default",
"apiKeyEnvVar": "POSTMAN_API_KEY_DEFAULT",
"workspaceId": null
}
],
"activeProfileName": "default",
"mcpUrl": "https://mcp.postman.com/mcp"
},
"stitch": {
"profiles": [
{
"name": "default",
"apiKeyEnvVar": "STITCH_API_KEY_DEFAULT"
}
],
"activeProfileName": "default",
"mcpUrl": "https://stitch.googleapis.com/mcp"
},
"mcp": {
"runtime": "docker",
"fallback": "local",
"docker": {
"image": "ghcr.io/cubetiq/foundry-mcp:<package-version>",
"updatePolicy": "pinned"
},
"catalog": {
"toolSync": true
}
}
}Inline keys are no longer allowed. Use env-var aliases only.
# List profiles
cbx workflows config keys list --service all --scope global
# Add profile (env-alias-first)
cbx workflows config keys add --service postman --name team-a --env-var POSTMAN_API_KEY_TEAM_A --scope global
cbx workflows config keys add --service stitch --name prod --env-var STITCH_API_KEY_PROD --scope global
# Switch active profile
cbx workflows config keys use --service postman --name team-a --scope global
# Remove non-active profile
cbx workflows config keys remove --service postman --name old-profile --scope global
# Migrate legacy inline keys to env aliases
cbx workflows config keys migrate-inline --scope global --redact
# Doctor check for inline keys / unsafe headers
cbx workflows config keys doctor --scope global
# Persist selected env aliases to ~/.cbx/credentials.env (mode 600)
cbx workflows config keys persist-env --service all --scope globalAlias commands are also available:
- None. Use canonical
cbx workflows config keys ...commands only.
cbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode fullIf active Postman env var (for example POSTMAN_API_KEY_DEFAULT) is available and --yes is not used, installer can show workspace chooser and save selected workspaceId in active Postman profile.
--postman now installs side-by-side MCP topology by default:
- direct Postman MCP server (
postman) - direct Stitch MCP server where applicable (
StitchMCPfor Antigravity) - local Foundry MCP command server (
cubis-foundryviacbx mcp serve --transport stdio --scope global)
--postman also installs the postman skill. Managed platform rules then treat Postman intent as route-first with optional skill priming:
- validate or search for the
postmanskill only when Postman intent is explicit or the route still needs domain context - load
skill_get "postman"before execution only when that context is actually needed - use direct
postmanserver tools for actual Postman collection/workspace/environment/run actions - keep Foundry
postman_*tools limited to mode/status/default-workspace config - never auto-fallback from
runCollectiontorunMonitor - recommend Postman CLI as the default secondary path after direct MCP execution fails
- use monitor execution only when the user explicitly asks for monitor-based cloud execution
Quota-safe execution facts:
- Postman API rate limits are separate from monitor usage limits
- monitor usage is plan/billing usage and is consumed by request count, region count, and auth requests
- monitor runtime caps are separate from monitor quota and do not imply quota is still available
To opt out of Foundry MCP registration during install:
cbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode full --no-foundry-mcpcbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode full --postman-workspace-id "<workspace-id>" --yesClear workspace ID:
cbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode full --postman-workspace-id null --yesIf config already exists and you want to overwrite saved values:
cbx workflows install --platform codex --scope global --bundle agent-environment-setup --postman --postman-mode full --overwrite --yesAntigravity includes managed Stitch MCP support using active Stitch profile from cbx_config.json.
Default managed command template:
{
"StitchMCP": {
"$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://stitch.googleapis.com/mcp",
"--header",
"X-Goog-Api-Key: ${STITCH_API_KEY_DEFAULT}"
],
"env": {}
}
}Managed MCP definition files (.cbx/mcp/...):
- Global scope:
~/.cbx/mcp/<platform>/postman.json - Project scope:
<workspace>/.cbx/mcp/<platform>/postman.json
Runtime target patching:
Codex:
- Global MCP runtime target:
~/.codex/config.toml(viacodex mcp add/remove) - Project MCP runtime target:
<workspace>/.vscode/mcp.json - Foundry side-by-side server id:
cubis-foundry(command:cbx mcp serve --transport stdio --scope <global|project>)- Install now pins scope explicitly (
globalorproject) in this command. - When MCP runtime is set to
docker, install pointscubis-foundryat the local Docker endpoint (http://127.0.0.1:3310/mcp) instead of the stdio command.
- Install now pins scope explicitly (
Antigravity:
- Global runtime target:
~/.gemini/settings.json(mcpServers) - Project runtime target:
<workspace>/.gemini/settings.json(mcpServers) - Foundry side-by-side server id:
cubis-foundry(command template)- Install now pins scope explicitly (
globalorproject) in this command.
- Install now pins scope explicitly (
Copilot:
- Global runtime target:
~/.copilot/mcp-config.json(servers) - Project runtime target:
<workspace>/.vscode/mcp.json(servers) - Foundry side-by-side server id:
cubis-foundry(stdio command server)- Install now pins scope explicitly (
globalorproject) in this command.
- Install now pins scope explicitly (
cbx workflows install --platform <codex|antigravity|copilot> --bundle agent-environment-setup
cbx workflows remove <bundle-or-workflow> --platform <platform>
cbx workflows remove-all --scope <project|global|all> --platform <platform|all>
cbx workflows prune-skills --platform <platform> --scope <project|global> --skill-profile <core|web-backend|full> [--include-mcp] [--dry-run]
cbx workflows doctor --platform <platform> --scope <project|global>
cbx workflows sync-rules --platform <platform> --scope <project|global>MCP runtime flags (install):
cbx workflows install --platform codex --bundle agent-environment-setup --postman \
--postman-mode full \
--mcp-runtime docker \
--mcp-fallback local \
--mcp-image ghcr.io/cubetiq/foundry-mcp:<package-version> \
--mcp-update-policy pinned \
--mcp-build-local # optional: build image locally instead of docker pullWhen --mcp-runtime docker is selected and Docker is available, install now prepares the image automatically:
- Pulls the image by default (
docker pull) - Or builds locally when
--mcp-build-localis set
MCP tool catalog commands:
cbx mcp tools sync --service all --scope global
cbx mcp tools list --service postman --scope global
cbx mcp tools list --service stitch --scope globalNotes:
cbx mcp tools syncrequiresPOSTMAN_API_KEY_DEFAULT.- For
--service stitchor--service all, it also requiresSTITCH_API_KEY_DEFAULT.
MCP manifest + managed rules block maintenance:
# Generate/refresh MCP manifest snapshot
npm run generate:mcp-manifest
# Validate MCP skill catalog + rule references
npm run validate:mcp-skills
npm run validate:mcp-manifest
# Inject/check managed MCP block in platform rule files
npm run inject:mcp-rules:all
npm run check:mcp-rules:allGenerated MCP artifacts:
mcp/generated/mcp-manifest.json(catalog snapshot used by managed rule blocks)mcp/generated/README.md(artifact notes)
Foundry local serve command (canonical entrypoint for MCP client registration):
# stdio (default)
cbx mcp serve --transport stdio --scope auto
# http for local smoke/debug
cbx mcp serve --transport http --scope auto --host 127.0.0.1 --port 3100
# verify vault only
cbx mcp serve --scan-onlyMCP Docker runtime commands:
# Inspect runtime/container state
cbx mcp runtime status --scope global --name cbx-mcp
# Start runtime container (pull/build image first as needed)
cbx mcp runtime up --scope global --name cbx-mcp --port 3310 --fallback local
# Recreate existing container
cbx mcp runtime up --scope global --name cbx-mcp --replace --fallback local
# Force an explicit skill vault mount source
cbx mcp runtime up --scope global --name cbx-mcp --replace --skills-root ~/.agents/skills
# Stop/remove runtime container
cbx mcp runtime down --name cbx-mcpDocker E2E MCP check (single command):
npm run test:mcp:dockerIf port 3310 is already in use (for example by an existing cbx-mcp runtime), use a different port:
CBX_MCP_PORT=3999 npm run test:mcp:dockerOptional strict key mode:
CBX_MCP_REQUIRE_KEYS=1 npm run test:mcp:dockerUse host skill vault instead of the script's isolated sample vault:
CBX_MCP_USE_HOST_SKILLS=1 npm run test:mcp:docker
# or an explicit path
CBX_MCP_USE_HOST_SKILLS=1 CBX_MCP_HOST_SKILLS_DIR="$PWD/.agents/skills" npm run test:mcp:dockerContext budget reporting (from MCP skill tools):
- Skill tools now include
structuredContent.metricswith deterministic estimates. - Metrics include:
fullCatalogEstimatedTokensresponseEstimatedTokensselectedSkillsEstimatedTokensorloadedSkillEstimatedTokensestimatedSavingsVsFullCatalogestimatedSavingsVsFullCatalogPercent
- New rollup tool:
skill_budget_reportfor consolidated Skill Log + Context Budget. - Docker smoke now prints token estimate lines (
token.full_catalog,token.selected,token.loaded,token.savings, etc.) for quick visibility. - All token values are estimates using
ceil(char_count / charsPerToken)(defaultcharsPerToken=4), not provider billing tokens.
Install profile flags:
# default core profile (workflow skills only)
cbx workflows install --platform codex --bundle agent-environment-setup
# expanded workflow profile
cbx workflows install --platform codex --bundle agent-environment-setup --skill-profile web-backend
# include MCP catalog with profile
cbx workflows install --platform codex --bundle agent-environment-setup --skill-profile web-backend --include-mcp
# full workflow + MCP catalogs
cbx workflows install --platform codex --bundle agent-environment-setup --all-skills# Show config (+ computed status block)
cbx workflows config --scope global --show
# Edit active Postman workspace ID
cbx workflows config --scope global --edit
cbx workflows config --scope global --workspace-id "<workspace-id>"
cbx workflows config --scope global --clear-workspace-id
# Set Postman MCP mode without jq edits (also patches MCP artifacts/targets)
cbx workflows config --scope global --platform codex --postman-mode full
# Switch MCP runtime preference quickly
cbx workflows config --scope project --mcp-runtime local
cbx workflows config --scope project --mcp-runtime docker --mcp-fallback local--show now includes computed status:
- stored source (from active profile config)
- effective source (resolved at runtime with env)
- active profile name
- effective env var alias
cbx rules init --platform <platform> --scope project --overwrite
cbx rules tech-md --overwrite
cbx rules tech-md --overwrite --compactThe following aliases were removed:
cbx skills ...cbx installcbx platformscbx workflows init
Use these canonical replacements:
cbx init(guided interactive installer)cbx workflows ...cbx workflows installcbx workflows platforms
Use this when you want to remove all CBX-managed generated artifacts in one step.
# Preview
cbx remove all --scope all --platform all --dry-run
# Apply
cbx remove all --scope all --platform all --yesEquivalent workflow command:
cbx workflows remove-all --scope all --platform all --yesWhat it removes (by scope/platform selection):
- Generated workflows/agents/skills wrappers.
- Managed rule blocks and generated engineering docs (
AGENTS.md,ENGINEERING_RULES.md,TECH.md) where applicable. - Managed MCP definition files and runtime target entries.
- Project/global
.cbxstate/config artifacts created by installer flows. - Optional global credentials file (
~/.cbx/credentials.env) when--include-credentialsis provided.
To keep generated artifacts out of git in app repositories, add these ignore entries:
.cbx/
.agent/
.agents/
.github/agents/
.github/skills/
.github/prompts/
.github/copilot/
AGENTS.md
ENGINEERING_RULES.md
TECH.mdCause:
- Active profile uses env alias but variable is not exported in current shell/process.
Fix:
export POSTMAN_API_KEY_DEFAULT="<key>"
cbx workflows config --scope global --showThen confirm status.postman.effectiveSource is env.
Use:
cbx workflows config --scope global --showCheck these fields:
status.postman.storedSourcestatus.postman.effectiveSourcestatus.postman.effectiveEnvVar
If stored source is env but effective source is unset, your env var alias is missing in the running process.
If installer says config was skipped:
- Re-run with
--overwrite, or - Use
cbx workflows config/cbx workflows config keys ...to mutate existing config.
Cause:
- Runtime container has no skill mount at
/workflows/skills.
Fix:
# Ensure host skill vault exists
ls ~/.agents/skills
# Recreate runtime
cbx mcp runtime up --scope global --name cbx-mcp --replace
# Check mount hint
cbx mcp runtime status --scope global --name cbx-mcp
# Force mount from an explicit path
cbx mcp runtime up --scope global --name cbx-mcp --replace --skills-root ~/.agents/skillsIf ~/.agents/skills is missing, runtime still starts but will warn and skill discovery may return zero.
cbx mcp runtime upruns HTTP transport in Docker for shared local endpoint (http://127.0.0.1:<port>/mcp).cbx mcp serve --transport stdioruns local stdio transport for command-based MCP clients.- Prefer stdio command server entries (
cubis-foundry) for direct client integrations; use Docker runtime for explicit HTTP endpoint use cases.
If Docker runtime starts but MCP endpoint is unreachable:
# Check health and hints
cbx mcp runtime status --scope project --name cbx-mcp
# Switch this project to local runtime
cbx workflows config --scope project --mcp-runtime local
# Use direct local server path
cbx mcp serve --transport stdio --scope autoInstaller now auto-cleans nested duplicate skills (for example duplicates under postman/*).
Run refresh install:
cbx workflows install --platform codex --bundle agent-environment-setup --overwrite --yesBehavior is now hard-fail. Create/repair cbx_config.json first:
cbx workflows config --scope global --clear-workspace-idcbx_config.jsonis now the only supported config source for Postman/Stitch credentials.- Multi-profile key model added (
profiles[]+activeProfileName). config keyscommands added (list/add/use/remove).config --shownow reports stored vs effective auth source.- Install now defaults to indexed top-level all-skill install.
- Nested duplicate skill directories are auto-cleaned during install.
- Legacy aliases were removed (
skills, rootinstall/init/platforms,workflows init). - CLI runtime migrated to TypeScript source under
src/cliwith compiled output underdist/cli. ENGINEERING_RULES.mdnow auto-refreshes generated/legacy templates oncbx rules initwithout requiring--overwrite.- Managed engineering guardrail block now includes full absolute file paths and a Decision Log response contract.
npm install -g @cubis/foundry
cbx workflows install --platform codex --bundle agent-environment-setup --overwrite --yes
cbx workflows config --scope global --show- Postman API keys: https://learning.postman.com/docs/developer/postman-api/authentication/
- Postman MCP setup: https://learning.postman.com/docs/developer/postman-api/postman-mcp-server/set-up-postman-mcp-server
- Google Stitch MCP: https://developers.google.com/stitch