agentweaver
v0.1.7
Published
CLI orchestrator for Jira/Codex/Claude engineering workflows
Downloads
726
Maintainers
Readme
AgentWeaver
AgentWeaver is a TypeScript/Node.js CLI for engineering workflows around Jira, GitLab review artifacts, Codex, and Claude.
It orchestrates a flow like:
plan -> implement -> run-go-linter-loop -> run-go-tests-loop -> review -> review-fix
The package is designed to run as an npm CLI and includes an interactive terminal UI built on neo-blessed.
What It Does
- Fetches a Jira issue by key or browse URL
- Fetches GitLab merge request review comments into reusable markdown and JSON artifacts
- Generates workflow artifacts such as design, implementation plan, QA plan, bug analysis, reviews, and summaries
- Machine-readable JSON artifacts are stored under
.agentweaver/scopes/<scope-key>/.artifacts/and act as the source of truth between workflow steps; Markdown artifacts remain for human inspection - Workflow artifacts are isolated by scope; for Jira-driven flows the scope key defaults to the Jira task key, otherwise it defaults to
<git-branch>--<worktree-hash> - Runs workflow stages like
bug-analyze,bug-fix,mr-description,plan,task-describe,implement,review,review-fix,run-go-tests-loop,run-go-linter-loop, andauto - Persists compact
autopipeline state on disk so runs can resume without storing large agent outputs - Uses Docker runtime services for isolated Codex execution and build verification
Architecture
The CLI now uses an executor + node + declarative flow architecture.
src/index.tsremains the CLI entrypoint and high-level orchestration layersrc/executors/contains first-class executors for external actions such as Jira fetch, GitLab review fetch, local Codex, Docker-based build verification, Claude, Claude summaries, and process executionsrc/pipeline/nodes/contains reusable runtime nodes built on top of executorssrc/pipeline/flow-specs/contains declarative JSON flow specs forpreflight,bug-analyze,bug-fix,gitlab-review,mr-description,plan,task-describe,implement,review,review-fix,run-go-tests-loop,run-go-linter-loop, andautosrc/runtime/contains shared runtime services such as command resolution, Docker runtime environment setup, and subprocess execution
This keeps command handlers focused on choosing a flow and providing parameters instead of assembling prompts and subprocess wiring inline.
Repository Layout
src/— main TypeScript sourcessrc/index.ts— CLI entrypoint and workflow orchestrationsrc/pipeline/flow-specs/— declarative JSON specs for workflow stagessrc/pipeline/nodes/— reusable pipeline nodes executed by the declarative runnersrc/interactive-ui.ts— interactive TUI built withneo-blessedsrc/markdown.ts— markdown-to-terminal renderer for the TUIsrc/executors/— executor modules for concrete execution familiessrc/executors/configs/— default executor configs kept as plain datasrc/runtime/— shared runtime services used by executorsdocker-compose.yml— runtime services for Codex and build verificationDockerfile.codex— container image for Codex runtimeverify_build.sh— aggregated verification entrypoint used byverify-buildrun_go_tests.sh— isolated Go test verification entrypointrun_go_linter.sh— isolated Go generate + lint verification entrypointrun_go_coverage.sh— isolated Go coverage verification entrypointpackage.json— npm package metadata and scriptstsconfig.json— TypeScript configuration
Requirements
- Node.js
>= 18.19.0 - npm
- Docker with
docker composeordocker-compose codexCLI forbug-analyze,bug-fix,mr-description,plan, and other Codex-driven stepsclaudeCLI for review and summary steps
Installation
Local development:
npm install
npm run buildGlobal install after publication:
npm install -g agentweaverOne-off usage after publication:
npx agentweaver --helpEnvironment
Required:
JIRA_API_KEY— Jira API token used to fetch issue JSON
Common optional variables:
JIRA_BASE_URL— required when you pass only an issue key likeDEMO-123GITLAB_TOKEN— personal access token forgitlab-reviewAGENTWEAVER_HOME— path to the AgentWeaver installation directoryDOCKER_COMPOSE_BIN— override compose command, for exampledocker composeCODEX_BIN— overridecodexexecutable pathCLAUDE_BIN— overrideclaudeexecutable pathCODEX_MODEL— fallback model for Codex executors when the flow spec does not setparams.modelCLAUDE_MODEL— fallback Claude model when the flow spec does not setparams.model
Example .env:
JIRA_API_KEY=your-jira-api-token
JIRA_BASE_URL=https://jira.example.com
AGENTWEAVER_HOME=/absolute/path/to/AgentWeaver
CODEX_BIN=codex
CLAUDE_BIN=claude
CODEX_MODEL=gpt-5.4
CLAUDE_MODEL=opus
GOPRIVATE=gitlab.example.org/*
GONOSUMDB=gitlab.example.org/*
GONOPROXY=gitlab.example.org/*
GIT_ALLOW_PROTOCOL=file:https:sshUsage
Direct CLI usage:
agentweaver plan DEMO-3288
agentweaver plan
agentweaver bug-analyze DEMO-3288
agentweaver bug-fix DEMO-3288
agentweaver gitlab-review DEMO-3288
agentweaver mr-description DEMO-3288
agentweaver task-describe DEMO-3288
agentweaver implement DEMO-3288
agentweaver review
agentweaver review DEMO-3288
agentweaver review --scope release-prep
agentweaver run-go-tests-loop DEMO-3288
agentweaver run-go-tests-loop
agentweaver run-go-linter-loop DEMO-3288
agentweaver auto DEMO-3288From source checkout:
node dist/index.js plan DEMO-3288
node dist/index.js plan
node dist/index.js bug-analyze DEMO-3288
node dist/index.js bug-fix DEMO-3288
node dist/index.js gitlab-review DEMO-3288
node dist/index.js mr-description DEMO-3288
node dist/index.js task-describe DEMO-3288
node dist/index.js review
node dist/index.js auto DEMO-3288Interactive mode:
agentweaver DEMO-3288
agentweaverWhen you run from a working project directory, set AGENTWEAVER_HOME to the AgentWeaver installation:
AGENTWEAVER_HOME=/absolute/path/to/AgentWeaver agentweaver DEMO-3288Useful commands:
agentweaver --help
agentweaver auto --help-phases
agentweaver auto-status DEMO-3288
agentweaver auto-reset DEMO-3288Notes:
--verbosestreams child processstdout/stderrin direct CLI mode- task-only commands such as
planandautoask for Jira task via interactiveuser-inputwhen it is omitted - scope-flexible commands such as
review,review-fix,run-go-tests-loop, andrun-go-linter-loopuse the current git branch by default when Jira task is omitted --scope <name>lets you override the default project scope name- the interactive
Activitypane is intentionally structured: it shows launch separators, prompts, summaries, and short status messages instead of raw Codex/Claude logs by default
Interactive TUI
Interactive mode opens a full-screen terminal UI with:
- flow list
- current flow progress
- activity log
- task summary pane
- keyboard navigation between panes
Current navigation:
Enter— run selected flowTab/Shift+Tab— switch panesPgUp/PgDn/Home/End— scroll focused panesh— help overlayqorCtrl+C— exit
Activity pane behavior:
- each external launch is separated with a framed block that shows the current
node,executor, andmodelwhen available - prompts and summaries are rendered as plain text for readability
- live raw Codex/Claude output is not shown there in normal mode
Docker Runtime
Docker is used as an isolated execution environment for Codex-related runtime scenarios that still require container orchestration.
Main services:
codex— interactive Codex containercodex-exec— non-interactivecodex execverify-build— project verification script inside containerrun-go-tests— isolatedrun_go_tests.shexecution inside containerrun-go-linter— isolatedrun_go_linter.shexecution inside containerrun-go-coverage— isolatedrun_go_coverage.shexecution inside containercodex-login— interactive login containerdockerd— internal Docker daemon for testcontainers/build flows
Typical login flow:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm codex-loginInteractive Codex container:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm codexNon-interactive Codex run:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm \
-e CODEX_PROMPT="Review the project and fix failing tests" \
codex-execBuild verification:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm verify-buildTests only:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm run-go-testsLinter only:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm run-go-linterCoverage only:
PROJECT_DIR="$PWD" docker compose -f "$AGENTWEAVER_HOME/docker-compose.yml" run --rm run-go-coverageDevelopment
Install dependencies and build:
npm install
npm run buildType-check only:
npm run checkPreview publish tarball:
npm run pack:checkRun from source in dev mode:
npm run dev -- --helpRepresentative smoke checks during development:
node dist/index.js --help
node dist/index.js auto --help-phases
node dist/index.js plan --dry DEMO-123
node dist/index.js implement --dry DEMO-123
node dist/index.js review --dry DEMO-123Publishing
The package is prepared for npm publication and currently includes:
- npm bin entry:
agentweaver prepublishOnlybuild/typecheck- tarball filtering through
files - public publish config
Publish flow:
npm login
npm publishIf you want a public package, verify the package name and license before publishing.
Security Notes
- the Codex container does not receive host
docker.sock - Docker access for tests goes through isolated
dockerd - secure Git protocols only:
sshandhttps dockerdruns privileged because DinD requires it; this is still safer than exposing host Docker directly
