Metadata-Version: 2.4
Name: yoke-agent
Version: 0.0.0.dev0
Summary: Yoke — a multi-agent harness: CLI/TUI (yoke) + HTTP API & Web UI server (yoke-server).
Author-email: Bertrand Louargant <blouargant@chapsvision.fr>
License: MIT
Project-URL: Homepage, https://github.com/blouargant/yoke
Project-URL: Repository, https://github.com/blouargant/yoke
Project-URL: Issues, https://github.com/blouargant/yoke/issues
Keywords: agent,llm,ai,cli,tui,mcp,a2a,harness
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Go
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# yoke-agent

**Yoke** is a multi-agent harness. The same binary becomes a code reviewer, a
Kubernetes triage assistant, or a DBA helper purely by mounting different tools,
skills, and MCP servers — no code changes required to retarget the agent.

This package ships two prebuilt Go binaries inside a platform-specific wheel:

| Command | What it is |
|---|---|
| `yoke` | CLI / TUI / REPL |
| `yoke-server` | HTTP API + Web UI server |

## Install

```bash
pip install yoke-agent          # into any Python 3.8+ environment
# or, isolated:
pipx install yoke-agent
```

Prebuilt wheels are published for Linux (x86_64, aarch64), macOS (Intel, Apple
Silicon), and Windows (x64, arm64). The wheel contains the native binary plus the
default config, agent/skill registry, and Web UI assets — no Go toolchain needed.

## First run

On first launch, `yoke` copies the bundled default **config and registry** into
your per-user config home so they are yours to edit:

```
~/.yoke/
├── agents.json  models.json  mcp_config.json  permissions.json
├── preferences.json  remote_registries.json  a2a_config.json  server.yaml
├── filters/                 # bash output filter patterns
└── registry/
    ├── agents/              # built-in agent definitions
    └── skills/              # bundled skill playbooks
```

Existing files are never overwritten, so your edits survive upgrades. To refresh
the pristine defaults at any time:

```bash
yoke-seed --force            # re-copy bundled defaults into ~/.yoke
yoke-seed --home /path/to/x  # seed a different config home
```

The Web UI assets stay inside the installed wheel (read-only) and the launcher
points the binaries at them automatically.

## Quick start

```bash
export ANTHROPIC_API_KEY=sk-...     # or OPENAI_API_KEY / GOOGLE_API_KEY

yoke "explain this repo"            # one-shot CLI
yoke                                # REPL (interactive TTY)
yoke tui                            # full-screen TUI

YOKE_SERVER_TOKEN=secret yoke-server   # Web UI + API on http://localhost:8080
```

## Configuration layering

yoke resolves configuration through a search chain, highest precedence first:

1. `./.agents/` — project-local (per checkout)
2. `~/.yoke/` — per-user (what this package seeds; override with `$YOKE_HOME`)
3. the bundled defaults inside the wheel (system layer)

So a value you set in `~/.yoke/models.json` overrides the shipped default, and a
`./.agents/models.json` in a project overrides both.

Useful environment variables:

| Variable | Purpose |
|---|---|
| `YOKE_HOME` | Per-user state + config root (default `~/.yoke`). |
| `YOKE_WEB_DIR` | Static Web UI directory (default: the bundled assets). |
| `YOKE_SYSTEM_CONFIG_DIR` | System config layer (default: the bundled defaults). |
| `YOKE_SERVER_TOKEN` | Bearer token required by `yoke-server`'s API. |
| `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GOOGLE_API_KEY` | Provider keys. |

Project home and full documentation: <https://github.com/blouargant/yoke>
