Skip to main content

Orchestrate AI agents from your terminal — multi-source credential import, swarm topology, background queue, live dashboard

Project description

TAG

TAG

Orchestrate AI agents from your terminal.

Multi-provider routing • Native kanban layer • Background job queue • Live dashboard • Swarm topology

CI PyPI version npm version Python 3.11+ MIT License


What's new in v0.4.0

  • Native kanban layer — pure SQLite management plane; create and monitor tasks without an API key
  • Swarm topology — fan out one goal to multiple workers with idempotent deduplication (tag swarm)
  • Background job queue — detached queue with priority scheduling; survives terminal close (tag queue)
  • Memory journal — persistent agent reflection log with search and expiry (tag memory-journal)
  • Enhanced tag doctor — JSON output mode, accurate patch-state detection, non-zero exit on failures
  • Enhanced tag dashboard — native live view powered by Rich; no external dependencies

Features

  • Multi-provider routing — workers run on OpenRouter, Codex, Claude, Gemini, Mistral, Groq, DeepSeek, or any OpenAI-compatible endpoint; model and provider switch per profile
  • Profile-based orchestration — four built-in roles (orchestrator, researcher, coder, reviewer) each with independent model, credential, and routing config
  • Zero-dependency bootstrap — bundles Hermes v0.16.0; provisions a managed runtime on first run, no manual steps required
  • Broad credential import — one command to pull keys from 10+ local AI tools: Claude Code, Gemini CLI, Codex, Continue.dev, Mistral Vibe, opencode, Zed, Cursor, GitHub Copilot, Aider, AWS Bedrock
  • Native kanban layer — SQLite-backed task management plane; no hermes binary required to create or monitor tasks
  • Swarm topology — fan out a single goal to a configurable worker pool; SHA-256 idempotency key prevents duplicate task creation on retries
  • Background queue — priority-ordered job queue (1–10) with status tracking, graceful cancellation, and truncation warnings
  • Memory journal — append, search, and expire reflection entries without touching the hermes runtime
  • Live dashboard — Rich-powered terminal dashboard showing active runs, queue depth, and profile health
  • Full TUI — patched Hermes terminal UI with TAG skin; also works fully headless for CI and scripting
  • Benchmark suite — built-in task runner with persistent history via tag benchmark / tag runs
  • Escape hatchtag hermes -- ... passes any command through to the underlying runtime

Install

Python (recommended):

pip install tag-agent

pipx (isolated, no venv management):

pipx install tag-agent

npm / pnpm:

npm install -g tag-agent
# or
pnpm add -g tag-agent

The npm package is a thin Node launcher. On first run it creates an isolated Python runtime under ~/.tag/npm-runtime/<version>. Python 3.11–3.13 must be on your PATH.

Requires Python 3.11 – 3.13.

Quick start

tag setup       # provision runtime, create profiles, import credentials
tag tui         # launch the full orchestrator TUI

Without the TUI:

tag submit --task-type mixed --execution direct --prompt "Summarise this repo"
tag benchmark --profile researcher --model-ref openrouter/deepseek/deepseek-v4-flash

Credential import

TAG detects and imports API keys from local AI tool configs with a single command. No keys are sent anywhere — they are written to the target profile's .env file only.

Command Source
tag import-claude ANTHROPIC_API_KEY env, ~/.claude/.credentials.json, ~/.claude.json
tag import-gemini GEMINI_API_KEY env, ~/.gemini/.env, ~/.gemini/oauth_creds.json
tag import-codex ~/.codex/auth.json (OpenAI Codex CLI)
tag import-continue ~/.continue/config.yaml or config.json (all configured providers)
tag import-mistral MISTRAL_API_KEY env, ~/.vibe/.env (Mistral Vibe CLI)
tag import-opencode ~/.local/share/opencode/auth.json (all configured providers)
tag import-zed ~/.config/zed/settings.json language_models.<provider>.api_key
tag import-copilot GITHUB_TOKEN env, ~/.config/gh/hosts.yml (gh CLI)
tag import-aider ~/.aider.conf.yml, ~/.env, ~/.aider.env
tag import-aws ~/.aws/credentials (Amazon Bedrock / Q Developer)
tag import-cursor Cursor's local SQLite store (BYOK API keys)
tag import-ssh SSH key + host → profile env (remote agent execution)
tag import-docker Docker image name → profile env (containerised agents)
tag import-modal Modal token-id + token-secret → profile env
tag import-daytona Daytona workspace-id → profile env
tag import-nous-portal Nous Portal API key → profile env

Each command accepts --profile <name> and --json for machine-readable output.

Command reference

Orchestration:

Command Description
tag setup Full first-run bootstrap — runtime, profiles, credentials
tag doctor Check runtime health and configuration; --json for machine-readable output
tag dashboard Live Rich dashboard — active runs, queue depth, profile health
tag tui Launch the orchestrator TUI
tag tui --profile coder Launch TUI inside a specific profile
tag submit Submit a task for direct or kanban execution
tag benchmark Run the benchmark suite against a profile/model
tag runs Show benchmark run history
tag bootstrap Re-bootstrap profiles without full setup
tag update Update the managed Hermes runtime
tag status Show current profile and model status

Swarm & queue (v0.4.0):

Command Description
tag swarm --goal "..." --workers 4 Fan out a goal to N parallel workers
tag swarm --board research --goal "..." Target a named kanban board
tag queue add --prompt "..." --priority 8 Add a job to the background queue (priority 1–10)
tag queue list Show pending and active jobs; --limit N to page
tag queue cancel --job-id <id> Cancel a pending job
tag queue status --job-id <id> Show job status and result

Memory journal (v0.4.0):

Command Description
tag memory-journal add "..." Append an entry to the journal
tag memory-journal list List recent entries
tag memory-journal search "..." Full-text search across entries
tag memory-journal forget <id> Remove a specific entry

Model management:

Command Description
tag models --profile researcher List available models for a profile
tag openrouter-models --profile researcher --search gemini Search OpenRouter catalog
tag set-model --profile reviewer --ref openrouter/deepseek/deepseek-v4-pro Set active model
tag assignments Show all profile → model assignments

Pass-through commands (run inside a profile's managed environment):

tag chat --profile orchestrator -- --help
tag gateway --profile orchestrator -- start
tag kanban --profile orchestrator -- list
tag sessions --profile orchestrator -- list
tag skills --profile orchestrator -- list
tag plugins --profile orchestrator -- list
tag tools --profile orchestrator -- list
tag mcp --profile orchestrator -- list
tag logs --profile orchestrator -- --since 1h
tag memory --profile orchestrator -- status
tag model --profile orchestrator -- list
tag profile -- list
tag completion --profile orchestrator -- zsh
tag prompt-size --profile orchestrator

Full escape hatch:

tag hermes --profile orchestrator -- gateway start

Profiles

TAG ships five built-in profiles:

Profile Role Default model
orchestrator Master — delegates tasks, routes results openai-codex/gpt-5.4
researcher Worker — web research and summarisation openrouter/deepseek/deepseek-v4-flash
coder Worker — implementation and refactoring openrouter/qwen/qwen3-coder
reviewer Worker + verifier — code review openrouter/deepseek/deepseek-v4-pro
codex-runtime-master Alternate master for Codex app-server flows (Codex runtime)

Override the model for any profile:

tag set-model --profile coder --ref openrouter/anthropic/claude-sonnet-4-5

Task routing

Task type Workers Verifier Execution
research researcher reviewer Kanban
implementation coder reviewer Kanban
review reviewer reviewer Direct
mixed researcher + coder reviewer Kanban

Configuration

State lives under ~/.tag/ by default:

~/.tag/
  config/tag.yaml
  config/benchmark-suite.yaml
  managed/hermes-agent-upstream/
  runtime/home/
  runtime/tag.sqlite3
export TAG_HOME=/custom/path   # override root

Requirements

  • Python 3.11 – 3.13
  • npm — required for the full TUI build on first run; not needed for submit / benchmark / queue / swarm / doctor / dashboard
  • git — recommended for tag update on git-backed checkouts

Architecture

tag CLI
├── Management plane  (SQLite — no API key needed)
│   ├── kanban.py     native task create / monitor
│   ├── queue_worker  priority background jobs
│   └── dashboard     Rich live view
└── Execution plane   (Hermes gateway — API key required)
    ├── swarm         fan-out topology
    ├── submit        direct / kanban dispatch
    └── tui           full terminal UI

The split means tag queue, tag swarm, tag dashboard, tag doctor, and credential-import commands work offline and without an active API key.

Notes

  • TAG does not require a pre-installed Hermes checkout. It provisions one from the bundled source snapshot on first run, and falls back to git clone only if the snapshot is unavailable.
  • If a valid Hermes checkout is already present on the machine, TAG reuses it automatically.
  • tag update is lifecycle-aware: on a bundled checkout it refreshes from the packaged snapshot; on a git-backed checkout it delegates to Hermes' own update flow.
  • The npm distribution is a launcher wrapper around the Python package, not a Node reimplementation.
  • Credential import commands only write to the target profile's local .env — no keys leave the machine.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tag_agent-0.5.0.tar.gz (54.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tag_agent-0.5.0-py3-none-any.whl (54.9 MB view details)

Uploaded Python 3

File details

Details for the file tag_agent-0.5.0.tar.gz.

File metadata

  • Download URL: tag_agent-0.5.0.tar.gz
  • Upload date:
  • Size: 54.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for tag_agent-0.5.0.tar.gz
Algorithm Hash digest
SHA256 aac7ffdc01863c171566465cdfc1a2c74ab551ad5635bb0cadbe329599b7d456
MD5 cd7ef28339f9cd180f1f2b0c76a03d51
BLAKE2b-256 b22ce69993a3f123dd8b99192f5393ededf724bb6382f2ffeb8023108e764721

See more details on using hashes here.

File details

Details for the file tag_agent-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: tag_agent-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 54.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for tag_agent-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d98208583d86040f4d6f8b178e42330f266e325cb5227b343fec9b24763d566d
MD5 b57b8f9dfd5ad5998f08ee42676b6d6d
BLAKE2b-256 7a217a5258d0c11d43ef3bd40444fb3d698a93a1e29acd41fa07663a41f087f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page