@ur-wesley/fabrik
v2.1.0
Published
Fabrik: Scoped session orchestrator, low-token YAML config, and task workflow CLI for Cursor, OpenCode, and Pi
Readme
Fabrik
One cross-platform AI workflow for Cursor, OpenCode, Pi, and Antigravity: grill → land in Beads → build with backpressure → remember in Engram → map with Graphify.
Models stay in each app's picker. All orchestration and hub content are handled by the standalone Go CLI.
Quick start
npm i -g @ur-wesley/fabrik
# or: bun add -g @ur-wesley/fabrik
# or: go install github.com/ur-wesley/fabrik/cli/cmd/fabrik@latest
cd /path/to/your-repo && fabrik setup # inits repo first; prompts for apps; --dry-run to previewNo postinstall script — npm/bun install the prebuilt binary for your
platform via optionalDependencies (fabrik on PATH comes from bin/fabrik.js).
Or download fabrik-windows-amd64.exe / fabrik-linux-amd64 / fabrik-linux-arm64 /
fabrik-darwin-arm64 from the GitHub release.
Version lives in package.json (mirrored to cli/package.json + npm/*/package.json
via npm run versions:sync); releases are tagged v<version>.
fabrik setup [--apps cursor,pi,antigravity,opencode] [--repo PATH] # prompts for apps when omitted
fabrik init [PATH] [--apps ...] # per-repo .fabrik hub + selective app wiring
fabrik check [--json] # probe bd, engram, graphify, pi, uv
fabrik update-deps --deps install/deps.json # refresh pins from GitHub/PyPI
fabrik versionDev: cd cli && go test ./.... Release targets: win32-x64, linux-x64, linux-arm64, darwin-arm64.
Per repo (Go CLI)
fabrik init [/path/to/your-repo] # thin .fabrik hub + selective app wiring (Cursor/OpenCode/Pi/Antigravity)
fabrik show <key> # hub content: workflow, readme, prompt <plan|build>, skill <name>, agent <name>
fabrik list <skills|agents|all> # what `fabrik show` can print
fabrik run [--auto -p "goals"] # align → plan → build
fabrik loop <plan|build> [--max N] # plan once, or build until no ready issues
fabrik migrate --prune [--dry-run] # delete legacy generated dumps (keeps config.yaml, docs/, specs/).fabrik/ on disk holds only config.yaml + docs/ + specs/. All other hub
content is embedded in the CLI and printed via fabrik show — no shell scripts or external dependencies.
Session loop (all apps)
- Orient — Engram
mem_context/mem_search. Query Graphify ifgraphify-out/exists. - Align — Grill (
/grill-with-docs). Optional/to-prd→.fabrik/docs/PRD.md. - Land —
bd create,bd dep addfor blockers. - Build —
bd ready→bd update <id> --claim→ TDD/backpressure →bd close <id>. - Remember — Engram
mem_save/mem_session_summary.
AFK factory (OpenCode)
fabrik run --auto -p "your goals" # grill → plan → build, non-interactive
fabrik loop plan # plan wave only, then review before build
fabrik loop build --max 5 # build wave, capped at 5 iterationsStack
Pinned in install/deps.json:
| Layer | Tool |
|-------|------|
| Issues | Beads (bd) |
| Memory | Engram |
| Code map | Graphify (graphifyy) |
| Pi MCP | @piarium/pi-mcp-adapter |
Beads owns tasks. Engram owns memory. Do not use bd remember for the same facts.
Files
| Path | Role |
|------|------|
| cli/ | Go CLI (fabrik setup|init|check|update-deps|version|show|list|run|loop|migrate), versioned via cli/package.json (synced from root) |
| bin/fabrik.js | npm/bun fabrik launcher (no postinstall, resolves platform package) |
| npm/fabrik-*/ | Per-platform packages with prebuilt binary (optionalDependencies) |
| scripts/sync-versions.mjs | Keeps root + cli/package.json + gui/Cargo.toml + npm/*/package.json in sync |
| install/deps.json | Pinned versions (embedded copy in CLI + sync test) |
| install/templates/ | Template sources embedded in the CLI (fabrik show, fabrik init) |
See PLAYBOOK.md for the full method.
Tests
cd cli && go test ./...
cd cli && go build ./cmd/fabrikIssue commands (fabrik issue …) talk to the embedded Dolt store
(.fabrik/dolt) and need a CGO_ENABLED=1 build plus a C toolchain:
npm run cli:build-cgo (or mise run cli:build-cgo) fails fast with a
gcc missing error when no compiler is on PATH (Windows: winget install
-e --id BrechtSanders.WinLibs.POSIX.UCRT; releases build Windows via
msys2 mingw-w64-x86_64-toolchain mingw-w64-x86_64-icu). Graph commands
(fabrik graph …) are pure Go (modernc.org/sqlite) and work without gcc.
