@jamesaphoenix/tx-core
v0.12.0
Published
Core business logic for tx - Effect-TS services and repositories
Readme
tx
Primitives, not frameworks. Headless, local infrastructure for AI agents.
tx gives you a small set of reusable primitives for task state, docs-first specs, memory, coordination, and observability. You keep the orchestration loop.
Install
# Standalone binary (recommended)
curl -fsSL https://raw.githubusercontent.com/jamesaphoenix/tx/main/install.sh | sh
# Or via npm (requires bun)
npm install -g @jamesaphoenix/tx-cliStart Small
The recommended first path is:
- Task Management
- Spec-Driven Development
- Memory & Context
- Bounded Autonomy
- Coordination
- Observability
Most users should start with just the first two.
Day 1: Task Management
tx init --codex # or: --claude, or plain tx init
tx add "Write auth PRD" --json
tx add "Implement auth flow" --json
tx block <implement-task-id> <prd-task-id>
tx ready
tx show <prd-task-id>
tx done <prd-task-id>
tx ready
tx sync exportThis proves the basic loop:
- the queue works
- dependencies affect readiness
- completion advances the queue
- state exports cleanly to
.tx/streams
Day 2: Spec-Driven Development
tx doc add prd auth-flow --title "Auth Flow"
# add or update tests with [INV-*], _INV_*, @spec, or .tx/spec-tests.yml
tx spec discover
tx spec status --doc auth-flow
vitest run --reporter=json | tx spec batch --from vitest
tx spec complete --doc auth-flow --by youUse the spec primitives like this:
tx spec fci: compact machine score for agents and automationtx spec status: human-readable blocker view for one scopetx spec health: repo rollup, not part of the minimum day-1 loop
The Six Layers
1. Task Management
Core queue and persistence:
tx inittx addtx readytx showtx donetx blocktx sync
2. Spec-Driven Development
Docs-first intent and closure:
tx doctx spectx decision
3. Memory & Context
Durable knowledge and prompt context:
tx memorytx pin
4. Bounded Autonomy
Controls for agents with more freedom:
tx labeltx guardtx verifytx reflecttx gate
5. Coordination
Multi-worker and multi-actor primitives:
tx claimtx send/tx inboxtx group-context
6. Observability
Operational visibility once the earlier layers are in place:
tx tracetx spec healthtx stats- dashboard
Interfaces
| Interface | Best For | |-----------|----------| | CLI | Shell scripts, human operators, local loops | | MCP Server | Claude Code, Cursor, IDE integrations | | TypeScript SDK | Custom Node/Bun agents | | REST API | Language-agnostic HTTP clients | | Dashboard | Visual monitoring and management |
Optional Later
Watchdog is intentionally not part of the main getting-started path.
Use it only if you need detached, long-running supervision:
tx init --watchdog --watchdog-runtime auto
./scripts/watchdog-launcher.sh startRunbook:
Why tx
| | Native Tasks | Static Agent Docs | tx | |---|---|---|---| | Persistence | Session-scoped | Manual file edits | SQLite + git-backed streams | | Multi-agent safety | Easy collisions | Manual coordination | Claims, dependencies, messaging | | Intent tracking | Weak | Weak | Docs-first specs + decision capture | | Knowledge reuse | Lost each session | Static dump | Searchable memory + pins | | Orchestration | Fixed by tool | None | You own the loop |
Docs
Principle
tx should stay small.
It is not an agent framework, not a hosted memory product, and not a prescribed workflow. It is a local set of primitives you can compose into your own loop.
