{"_id":"@agent-ix/ix-flow","_rev":"5-ec16e08f43123efe7c1d5da66243cfd8","name":"@agent-ix/ix-flow","dist-tags":{"latest":"0.2.3"},"versions":{"0.0.4":{"name":"@agent-ix/ix-flow","version":"0.0.4","license":"MIT","_id":"@agent-ix/ix-flow@0.0.4","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-flow#readme","bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"bin":{"ix-flow":"bin/ix-flow.js"},"dist":{"shasum":"37bddf622b69fc15502b8306c7db37d1f950ec6a","tarball":"https://registry.npmjs.org/@agent-ix/ix-flow/-/ix-flow-0.0.4.tgz","fileCount":47,"integrity":"sha512-zMhj3Nz0+XPoJHC1X73asxOhu3pBKdOHi5sQmulv1xznMo3BhGbSdQ06YeX31Gx6N3J9de6ppU+aQawzR+Xs+A==","signatures":[{"sig":"MEUCIGb9iAcHCGhjsLOq4YhmL6VR33HBSUg2zPtQvYtL0sWXAiEAtCv8jn8ufPC+i/ktJ/lVhfpS6/oJ435TWM7n/T3yDZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111061},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3ff81013546ebe9345cb7eb0ea8fa17e6de58ff7","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-flow --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ix-flow .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest","test-results:find":"jest-results find","test-results:detail":"jest-results detail","test-results:errors":"jest-results errors","test-results:failed":"jest-results failed","test-results:groups":"jest-results groups","test-results:summary":"jest-results summary","test-results:warnings":"jest-results warnings"},"_npmUser":{"name":"agent-ix","email":"peter@agent-ix.ai"},"repository":{"url":"git+https://github.com/agent-ix/ix-flow.git","type":"git"},"_npmVersion":"10.9.2","description":"Agent workflow runner CLI for Agent IX.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@agent-ix/ix-cli-core":"0.10.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"11.5.2","vite":"8.0.16","eslint":"10.4.1","vitest":"4.1.8","ts-node":"^10.9.2","prettier":"3.8.3","typescript":"6.0.3","@types/node":"25.9.1","vite-plugin-dts":"5.0.2","@vitest/coverage-v8":"4.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"8.60.1","@typescript-eslint/eslint-plugin":"8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ix-flow_0.0.4_1781881027385_0.39992284031317493","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@agent-ix/ix-flow","version":"0.1.0","license":"MIT","_id":"@agent-ix/ix-flow@0.1.0","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-flow#readme","bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"bin":{"ix-flow":"bin/ix-flow.js"},"dist":{"shasum":"478875984accf8dbcfee1c3e77c831d580ba99cd","tarball":"https://registry.npmjs.org/@agent-ix/ix-flow/-/ix-flow-0.1.0.tgz","fileCount":47,"integrity":"sha512-hLOzwrzHeFk3LyowwYC9LBk3GZkhQINGg1vCAFmT589QlLP3WtN7Ow6vkZ3O8J8sIWuDXVuz9dmqsOHJOBxtTA==","signatures":[{"sig":"MEUCIQCecOjG9ekRCu7X7RdbpwBtLBkc+PiGgJfUMzkxzJ+LNQIgKO7Ztb+z40ZffCJFznKjQc31bdtnt8+iZNZAewiVcIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111256},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"10a0d55df2e851d20c45177c97323b6f0b97cd1a","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-flow --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ix-flow .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest","test-results:find":"jest-results find","test-results:detail":"jest-results detail","test-results:errors":"jest-results errors","test-results:failed":"jest-results failed","test-results:groups":"jest-results groups","test-results:summary":"jest-results summary","test-results:warnings":"jest-results warnings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1de1ce43-45ca-4a86-86eb-a60bda55bb36"}},"repository":{"url":"git+https://github.com/agent-ix/ix-flow.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent workflow runner CLI for Agent IX.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@agent-ix/ix-cli-core":">=0.10.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"11.5.2","vite":"8.0.16","eslint":"10.4.1","vitest":"4.1.8","ts-node":"^10.9.2","prettier":"3.8.3","typescript":"6.0.3","@types/node":"25.9.1","vite-plugin-dts":"5.0.2","@vitest/coverage-v8":"4.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"8.60.1","@typescript-eslint/eslint-plugin":"8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ix-flow_0.1.0_1782341508569_0.8326308534808675","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agent-ix/ix-flow","version":"0.2.0","license":"MIT","_id":"@agent-ix/ix-flow@0.2.0","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-flow#readme","bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"bin":{"ix-flow":"bin/ix-flow.js"},"dist":{"shasum":"c2a97656539be1d58582eff0d6feacf760367d4b","tarball":"https://registry.npmjs.org/@agent-ix/ix-flow/-/ix-flow-0.2.0.tgz","fileCount":47,"integrity":"sha512-CopSMORkwToV4rnIMD6MrQyWGdIXY+BhQPlgok8zgH0HB8Ucl9vJJ4C51T4HwndCJ5Zxi9ev1OcWgfCy5INANg==","signatures":[{"sig":"MEYCIQCOjh7mGhf4eSxdCgZQ2dxIcmKtXgoS2V8ly9nEt7mJ1gIhAMSJFlVZ7CBCINSZYpmuEKqp5qPlCdaAA3jqBJlqmIyG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112324},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"8b1e2db0926d3e697309320a0ad73243095c6169","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-flow --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ix-flow .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest","test-results:find":"jest-results find","test-results:detail":"jest-results detail","test-results:errors":"jest-results errors","test-results:failed":"jest-results failed","test-results:groups":"jest-results groups","test-results:summary":"jest-results summary","test-results:warnings":"jest-results warnings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1de1ce43-45ca-4a86-86eb-a60bda55bb36"}},"repository":{"url":"git+https://github.com/agent-ix/ix-flow.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent workflow runner CLI for Agent IX.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@agent-ix/ix-cli-core":">=0.10.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"11.5.2","vite":"8.0.16","eslint":"10.4.1","vitest":"4.1.8","ts-node":"^10.9.2","prettier":"3.8.3","typescript":"6.0.3","@types/node":"25.9.1","vite-plugin-dts":"5.0.2","@vitest/coverage-v8":"4.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"8.60.1","@typescript-eslint/eslint-plugin":"8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ix-flow_0.2.0_1782403181322_0.5825737951698955","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@agent-ix/ix-flow","version":"0.2.1","license":"MIT","_id":"@agent-ix/ix-flow@0.2.1","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"homepage":"https://github.com/agent-ix/ix-flow#readme","bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"bin":{"ix-flow":"bin/ix-flow.js"},"dist":{"shasum":"6ecdc706936535ee47fa29a8fae0294a4f8883a7","tarball":"https://registry.npmjs.org/@agent-ix/ix-flow/-/ix-flow-0.2.1.tgz","fileCount":47,"integrity":"sha512-eN+cTioJMm8zs/ACWBvz1oaCZy1gI0p+HZeRyFENVuJCbZ8OHvw15QuhNbokl1CIIRFnXuSwomTjlpBVPaS4tQ==","signatures":[{"sig":"MEUCIQDz0Vrub+XN94kULyIsbVOuqp3/iisbq8betXfrLbmJLwIgWIqgj8fq6xq+xIIKMIGEe6EwqnKyTCSu+PLBbw8jA9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112446},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c448288ee99f05827e114cfa3432cd1f8ae9af04","scripts":{"help":"node scripts/help.js","info":"node scripts/build-tools.js info","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","tags":"npm dist-tag ls @agent-ix/ix-flow --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","test":"vitest run","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","format":"prettier --write .","pkg:add":"pnpm add","version":"node scripts/build-tools.js version","test:json":"vitest run --reporter=json --outputFile=report.json || true","pkg:update":"pnpm update","pkg:add-dev":"pnpm add -D","update-lock":"pnpm install --lockfile-only","docker:build":"docker build -t ghcr.io/agent-ix/ix-flow .","format:check":"prettier --check .","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","test:coverage":"vitest run --coverage","install:frozen":"pnpm install --frozen-lockfile","prepublishOnly":"pnpm run build","publish:dry-run":"pnpm publish --dry-run","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","pkg:update-latest":"pnpm update --latest","test-results:find":"jest-results find","test-results:detail":"jest-results detail","test-results:errors":"jest-results errors","test-results:failed":"jest-results failed","test-results:groups":"jest-results groups","test-results:summary":"jest-results summary","test-results:warnings":"jest-results warnings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1de1ce43-45ca-4a86-86eb-a60bda55bb36"}},"repository":{"url":"git+https://github.com/agent-ix/ix-flow.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent workflow runner CLI for Agent IX.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","@agent-ix/ix-cli-core":">=0.11.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"add":"^2.0.6","pnpm":"11.5.2","vite":"8.0.16","eslint":"10.4.1","vitest":"4.1.8","ts-node":"^10.9.2","prettier":"3.8.3","typescript":"6.0.3","@types/node":"25.9.1","vite-plugin-dts":"5.0.2","@vitest/coverage-v8":"4.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"8.60.1","@typescript-eslint/eslint-plugin":"8.60.1"},"_npmOperationalInternal":{"tmp":"tmp/ix-flow_0.2.1_1782572155523_0.12573769473688","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@agent-ix/ix-flow","description":"Agent workflow runner CLI for Agent IX.","version":"0.2.3","license":"MIT","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"ix-flow":"bin/ix-flow.js"},"packageManager":"pnpm@10.33.4","scripts":{"help":"node scripts/help.js","test":"vitest run","test:coverage":"vitest run --coverage","test:json":"vitest run --reporter=json --outputFile=report.json || true","lint":"eslint \"src/**/*.{ts,tsx,js,jsx}\" \"tests/**/*.{ts,tsx,js,jsx}\" && pnpm run format:check","format":"prettier --write .","format:check":"prettier --check .","build":"vite build","clean":"rm -rf node_modules dist coverage .pnpm-store","install:frozen":"pnpm install --frozen-lockfile","update-lock":"pnpm install --lockfile-only","version":"node scripts/build-tools.js version","info":"node scripts/build-tools.js info","docker:build":"docker build -t ghcr.io/agent-ix/ix-flow .","publish:dry-run":"pnpm publish --dry-run","prepublishOnly":"pnpm run build","tags":"npm dist-tag ls @agent-ix/ix-flow --registry https://npm.pkg.github.com || echo '(package not found or registry unavailable)'","pkg:add":"pnpm add","pkg:add-dev":"pnpm add -D","pkg:update":"pnpm update","pkg:update-latest":"pnpm update --latest","pkg:use-local":"pnpm dlx @agent-ix/js-deps use-local","pkg:use-upstream":"pnpm dlx @agent-ix/js-deps use-upstream","pkg:refresh-local":"pnpm dlx @agent-ix/js-deps refresh-local","test-results:summary":"jest-results summary","test-results:groups":"jest-results groups","test-results:detail":"jest-results detail","test-results:find":"jest-results find","test-results:failed":"jest-results failed","test-results:errors":"jest-results errors","test-results:warnings":"jest-results warnings"},"dependencies":{"@agent-ix/ix-cli-core":"^0.12.0","yaml":"^2.9.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"25.9.1","@typescript-eslint/eslint-plugin":"8.60.1","@typescript-eslint/parser":"8.60.1","@vitest/coverage-v8":"4.1.8","add":"^2.0.6","eslint":"10.4.1","eslint-plugin-prettier":"5.5.6","pnpm":"10.33.4","prettier":"3.8.3","ts-node":"^10.9.2","typescript":"6.0.3","vite":"8.0.16","vite-plugin-dts":"5.0.2","vitest":"4.1.8"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-flow.git"},"gitHead":"8b6cf8287db828b4db2df814bc7c1ef10362db24","_id":"@agent-ix/ix-flow@0.2.3","bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"homepage":"https://github.com/agent-ix/ix-flow#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-tmFIMgOhGS4Tova901cm/yRUANBKhRT3L9Sz/SNxZig1XXR8BGtuXXoETcU6kXqynVLg8uHMyoZ7+AM74Ig/BQ==","shasum":"ca494f1a490159a7cdde64b9f2dd8831a35309e6","tarball":"https://registry.npmjs.org/@agent-ix/ix-flow/-/ix-flow-0.2.3.tgz","fileCount":47,"unpackedSize":117560,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+Cnk5RoK4TuUIgdXDOYrzikfFwyYVGRMWCjr6Eso38wIhAOLsinrxII1ujUmSssYZTDcUdsY1x8sE8yHO24br047Y"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1de1ce43-45ca-4a86-86eb-a60bda55bb36"}},"directories":{},"maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ix-flow_0.2.3_1788841966264_0.8566481591284483"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T14:57:07.269Z","modified":"2026-09-08T04:32:46.511Z","0.0.4":"2026-06-19T14:57:07.526Z","0.1.0":"2026-06-24T22:51:48.716Z","0.2.0":"2026-06-25T15:59:41.458Z","0.2.1":"2026-06-27T14:55:55.649Z","0.2.3":"2026-09-08T04:32:46.382Z"},"bugs":{"url":"https://github.com/agent-ix/ix-flow/issues"},"license":"MIT","homepage":"https://github.com/agent-ix/ix-flow#readme","repository":{"type":"git","url":"git+https://github.com/agent-ix/ix-flow.git"},"description":"Agent workflow runner CLI for Agent IX.","maintainers":[{"name":"agent-ix","email":"peter@agent-ix.ai"}],"readme":"<p align=\"center\">\n  <img src=\"logo.png\" alt=\"IX Flow\" width=\"100%\" />\n</p>\n\n# IX Flow\n\n[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?logo=discord&logoColor=white)](https://discord.gg/6qsdhSPE)\n\n`ix-flow` runs agent workflows. A workflow is a small state machine — phases, transitions,\nand human gates — that your agent advances step by step, pausing for your approval where it\nmatters. You **author** a workflow; your **agent runs it** by calling `ix-flow`.\n\nWorkflows are packaged as **skills**: a flow definition plus instructions that tell the\nagent how to run it. [`quoin`](https://github.com/agent-ix/quoin), for example, ships\nspec skills that drive `ix-flow` — you invoke the skill, and the agent does the rest.\n\n## Install\n\nInstall the CLI your agent calls:\n\n```bash\nnpm i -g @agent-ix/ix-flow\n```\n\nThen add the plugin to your coding agent. The same two skills — **ix-flow** (runs a workflow)\nand **ix-flow-create** (authors a new one) — install into **Claude Code, OpenAI Codex,\nopencode, and GitHub Copilot**. Pick your agent below. No Anthropic API key is required —\nyour existing agent subscription is used.\n\n<details>\n<summary><b>Claude Code</b></summary>\n\nRun these inside Claude Code (they add the `/ix-flow` and `/ix-flow-create` commands):\n\n```text\n/plugin marketplace add agent-ix/ix-flow\n/plugin install ix-flow@ix-flow\n```\n\n</details>\n\n<details>\n<summary><b>OpenAI Codex</b></summary>\n\n```bash\ncodex plugin marketplace add agent-ix/ix-flow\ncodex plugin add ix-flow\n```\n\nOr browse and install ix-flow from the `/plugins` menu inside the Codex TUI.\n\n</details>\n\n<details>\n<summary><b>opencode</b></summary>\n\nInstall the skills with the GitHub CLI (requires `gh` ≥ 2.90.0). `--all` installs\nboth skills; `--scope user` makes them available in every repo:\n\n```bash\ngh skill install agent-ix/ix-flow --all --scope user --agent opencode\n```\n\n</details>\n\n<details>\n<summary><b>GitHub Copilot</b></summary>\n\nWith the Copilot CLI:\n\n```bash\ncopilot plugin marketplace add agent-ix/ix-flow\ncopilot plugin install ix-flow@ix-flow\n```\n\nOr install the skills with the GitHub CLI (requires `gh` ≥ 2.90.0):\n\n```bash\ngh skill install agent-ix/ix-flow --all --scope user --agent github-copilot\n```\n\n</details>\n\nAuthor your own workflow below, or install one like `quoin` that ships its own.\n\n> A clean-room, repeatable check of the Claude Code install path lives in [`smoke/`](./smoke) —\n> run `make install-smoke`.\n\n## Author a workflow\n\nA workflow is two files in a skill directory:\n\n```\nrelease/\n  SKILL.md                      # instructs the agent how to run the flow\n  workflows/\n    release/\n      def.yaml                  # the flow: phases, transitions, gates\n```\n\n**The flow** (`def.yaml`) declares the states and the moves between them. Here a change goes\n`draft → in_review → approved`, with the final step gated on human approval:\n\n```yaml\nname: release\nversion: 0.1.0\ninitialPhase: draft\nphases:\n  - { name: draft }\n  - { name: in_review }\n  - { name: approved, terminal: true }\ntransitions:\n  - { from: draft, to: in_review, defaultGate: auto }\n  - { from: in_review, to: approved, defaultGate: hitl } # pauses for approval\n```\n\n**The skill** (`SKILL.md`) tells the agent how to run that flow:\n\n```markdown\n---\nname: release\ndescription: Drive a change from draft through review to release.\nmetadata:\n  ix-flow-workflows: ./workflows\n---\n\n# /release\n\nStart from the run status and follow the reported next actions. Advance the run through its\nphases, and stop at the human gate until the change is approved.\n```\n\nRun `/ix-flow-create` and your agent scaffolds both files for you. See\n[`docs/guide.md`](docs/guide.md) for the full authoring reference; a complete, runnable\nversion of this workflow is in [`examples/release`](examples/release).\n\n## Use a workflow\n\nRun `/ix-flow <workflow>` and your agent drives the run — creating it, advancing through the\nphases, and pausing at gates for your approval:\n\n```text\nYou:    /ix-flow release\nAgent:  ▸ created run, advanced draft → in_review → reached the approval gate\n        \"Ready to release. Approve?\"\nYou:    approve\nAgent:  ▸ recorded approval, advanced to approved\n        \"Released.\"\n```\n\nUnder the hood the agent calls `ix-flow` to track the run and enforce the gate. Runs\npersist, so the agent can resume one across sessions.\n\n## Concepts\n\n- **Flow** — a workflow definition: phases, transitions, gates, invariants (`def.yaml`).\n- **Skill** — the agent's instructions for running a flow (`SKILL.md`).\n- **Run** — one live instance of a flow, identified by a run id.\n- **Phase** — a named state; a run sits in exactly one phase at a time.\n- **Gate** — a `hitl` transition that pauses for human approval.\n- **Invariant** — a predicate that must hold before a transition succeeds.\n\nSee [`docs/guide.md`](docs/guide.md) for the full guide — gates, invariants, interviews,\nartifact templates, the run lifecycle, and the complete command reference.\n\n## Development\n\n```bash\npnpm install\npnpm run build\npnpm test\npnpm run lint\n```\n\nThis package builds on `@agent-ix/ix-cli-core` from the standalone `ix-cli-core` repo.\n\n### Evals\n\nBeyond the unit tests, `ix-flow` uses the shared\n[`@agent-ix/cli-agent-evals`](../cli-agent-evals) toolkit to drive real coding-agent\nCLIs through each workflow skill end-to-end. The suite definition lives in\n[`cli-agent-evals.config.mjs`](cli-agent-evals.config.mjs); project-specific fixtures,\nprompts, and assertions remain under [`evals/`](evals/).\n\nLive runs use `agent-pty` + tmux and cost tokens/minutes, so they are opt-in:\n\n```bash\nmake evals          # canary subset (one scenario per family)\nmake evals-all      # full corpus (EV-001..EV-022)\nmake eval FILTER=EV-013\nmake evals-rebuild\n```\n\nDirect CLI form:\n\n```bash\nnode ../cli-agent-evals/bin/cli-evals.js run \\\n  --suite ./cli-agent-evals.config.mjs \\\n  --canary \\\n  --agent claude \\\n  --model sonnet\n```\n\nAgent plugin setup for authoring/running evals from an agent:\n\n```bash\nclaude plugin marketplace add agent-ix/cli-agent-evals\nclaude plugin install cli-agent-evals\n\ncodex plugin marketplace add agent-ix/cli-agent-evals\ncodex plugin add cli-agent-evals\n\ngh skill install agent-ix/cli-agent-evals --all --scope user --agent opencode\ngh skill install agent-ix/cli-agent-evals --all --scope user --agent github-copilot\n```\n\nMinimal integration pattern:\n\n```js\nimport { defineSuite } from \"../cli-agent-evals/dist/index.js\";\nimport { SCENARIOS } from \"./evals/scenarios/index.mjs\";\n\nexport default defineSuite({\n  name: \"ix-flow\",\n  rootDir: import.meta.dirname,\n  scenarios: SCENARIOS,\n});\n```\n\n## License\n\nMIT — see [`LICENSE`](LICENSE).\n","readmeFilename":"README.md"}