Metadata-Version: 2.5
Name: jarvix-harness
Version: 0.2.2
Summary: Jarvix harness adapters: everything specific to one coding agent CLI
Project-URL: Homepage, https://github.com/loctvl842/jarvix
Project-URL: Repository, https://github.com/loctvl842/jarvix
Project-URL: Issues, https://github.com/loctvl842/jarvix/issues
Author-email: loctvl842 <loclepnvx@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: agents,ai,cli,multiplexer,tmux
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# Jarvix Harness

Everything that is specific to one coding agent CLI. The hub and the CLI stay harness-agnostic and ask a harness for what they need.

Claude Code is the only harness today. A harness knows how to:

- build the command line that launches a node (`argv`)
- produce the hook settings that forward lifecycle events to Jarvix (`hook_settings`)
- produce the MCP config that gives the node its mesh tools (`mcp_config`)
- format the Stop hook reply that continues a turn with new text (`stop_block`)
- prepare a workspace so the node starts without a dialog (`prepare_workspace`)

```python
from jarvix.harness import LaunchContext, get_harness

harness = get_harness("claude")
argv = harness.argv(LaunchContext(node="coder", model="sonnet", settings=..., mcp_config=..., brief=...))
```
