Metadata-Version: 2.4
Name: jarvis-agent-cli
Version: 0.11.3
Summary: Standalone terminal coding agent for jarvis-inference
Author: Abdullah Al Rifat
Project-URL: Homepage, https://github.com/abdullahalrifat/jarvis
Project-URL: Repository, https://github.com/abdullahalrifat/jarvis
Project-URL: Issues, https://github.com/abdullahalrifat/jarvis/issues
Project-URL: Changelog, https://github.com/abdullahalrifat/jarvis/releases
Keywords: ai,agent,coding-agent,cli,terminal,llm
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: tomli>=2; python_version < "3.11"
Requires-Dist: jarvis-agent-core==0.17.2
Provides-Extra: multimodal
Requires-Dist: pypdf<7,>=6; extra == "multimodal"
Requires-Dist: Pillow<13,>=12; extra == "multimodal"
Provides-Extra: secure
Requires-Dist: keyring<26,>=25; extra == "secure"
Provides-Extra: telemetry
Requires-Dist: opentelemetry-api<2,>=1.36; extra == "telemetry"
Requires-Dist: opentelemetry-sdk<2,>=1.36; extra == "telemetry"
Requires-Dist: opentelemetry-exporter-otlp<2,>=1.36; extra == "telemetry"
Provides-Extra: browser
Requires-Dist: playwright<2,>=1.55; extra == "browser"
Provides-Extra: all
Requires-Dist: pypdf<7,>=6; extra == "all"
Requires-Dist: Pillow<13,>=12; extra == "all"
Requires-Dist: keyring<26,>=25; extra == "all"
Requires-Dist: playwright<2,>=1.55; extra == "all"
Requires-Dist: opentelemetry-api<2,>=1.36; extra == "all"
Requires-Dist: opentelemetry-sdk<2,>=1.36; extra == "all"
Requires-Dist: opentelemetry-exporter-otlp<2,>=1.36; extra == "all"

# Jarvis CLI

Jarvis is a distributable terminal AI coding agent. Install it from PyPI with pipx or pip, or download a standalone executable from GitHub Releases. Cloning the repository is only required for development.

## Efficient local-agent defaults

The local agent defaults to 20 steps, a 16,000-token input budget and a 6,000-token output budget. Adaptive multi-agent execution is off by default to avoid speculative extra model calls; enable it with `JARVIS_ADAPTIVE_AGENTS=true` or explicitly pass `--multi-agent` / `JARVIS_MULTI_AGENT=true` for tasks that benefit from parallel analysis. Override token ceilings with `JARVIS_MAX_INPUT_TOKENS` and `JARVIS_MAX_OUTPUT_TOKENS` when a task demonstrably needs more context.

## Current contract line

Jarvis **0.11.3** consumes the provider-neutral Jarvis Core **0.17.2** contracts. All model requests use the direct inference API; the CLI has no AI Stack remote execution mode.

Jarvis Core 0.17.2 is published as an immutable PyPI release; the CLI pins that exact release so Jarvis and Core can evolve independently.

Jarvis is a standalone local coding agent. The agent loop and tools run on the user's machine, and all model requests go directly to the separately deployed `jarvis-inference` HTTP API. The Jarvis CLI does not call AI Stack and exposes no AI Stack remote execution mode. AI Stack is an independent sibling application that may also consume the same inference API.

## Install

Jarvis is distributed as a normal Python application. You do not need to clone the Git repository to use it.

### Recommended: pipx

Python 3.10+ is required. pipx installs Jarvis into an isolated environment and exposes the `jarvis` command globally.

```bash
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install jarvis-agent-cli
jarvis --version
```

Upgrade later with:

```bash
pipx upgrade jarvis-agent-cli
```

### Standard pip

```bash
python3 -m pip install jarvis-agent-cli
jarvis --version
```

### Standalone executable

Download the platform-specific `jarvis-*` executable from GitHub Releases. Releases provide Linux amd64, macOS arm64 and Windows amd64 builds, plus SHA256 checksums and build provenance.

On Linux/macOS:

```bash
chmod +x ./jarvis-*
./jarvis-* --version
```

On Windows, run the `.exe` directly from PowerShell or Command Prompt.

### Development install

Only contributors working on the source tree need a repository checkout:

```bash
git clone https://github.com/abdullahalrifat/jarvis.git
cd jarvis
python3 -m pip install -e .
```

Jarvis 0.11.3 consumes `jarvis-agent-core==0.17.2` from PyPI. The dependency is pinned to the exact Core release in `pyproject.toml`.

See [docs/install.md](docs/install.md) for the complete distribution and upgrade guide.

## Token-efficient runtime

Core 0.17.2 provides provider-neutral primitives for bounded context construction, token/cost estimation, route budgets, adaptive routing and empirical route calibration. Jarvis keeps inference execution policy in the CLI, while shared efficiency and calibration contracts remain provider-neutral in Core.

Context construction can prioritize required task state, recent tool evidence and relevant files under an explicit budget. Route decisions can account for estimated token cost, latency, risk and measured task outcomes.

## Real workload efficiency benchmark

Jarvis owns local runtime observations, task-level workload definitions and quality evaluation. AI Stack owns telemetry and calibration for server-side Runs. Both adapt their own measured outcomes to the provider-neutral `jarvis-core` observation/calibration contract. The benchmark covers CI triage, provider architecture, release readiness, PR review, documentation alignment and efficiency audits.

Use the corpus to compare local-only and automatic routes using success, quality, incorrect completions, tool failures, latency, input/output/cache tokens and estimated cost. Runtime evidence should only influence automatic routing after the Core minimum-sample and quality-floor safeguards are satisfied.

## Connect directly to inference

Configure Jarvis to use the dedicated inference gateway. No AI Stack, database, vector store, or web UI is required for local repository work.

```bash
export INFERENCE_BASE_URL=http://<inference-vm-ip>:8080/v1
export INFERENCE_API_KEY=<your-inference-secret>
export JARVIS_MODEL=qwen3:1.7b

jarvis model-doctor
cd /path/to/repository
jarvis "review this repository and fix the highest-impact issue"
```

Bare tasks use the standalone local agent. The agent loop, repository tools, permission checks and verification run on the machine where Jarvis is installed; only model requests go to the inference gateway.

## AI Stack boundary

Jarvis does not expose AI Stack remote commands and never requires `AI_STACK_BASE_URL` or `AI_STACK_API_KEY`. Use Jarvis for local repository work; deploy AI Stack independently when you need its own durable Runs API, queues, retrieval, integrations or UI. Both applications call `jarvis-inference` directly. See [docs/architecture.md](docs/architecture.md) for ownership boundaries.

## Application boundaries

| Need | Use |
| --- | --- |
| Local repository work, interactive terminal, local automation | **Jarvis** |
| Durable shared Runs, queues and integrations | **AI Stack independently** |

Jarvis and AI Stack are independent consumers of `jarvis-agent-core` and `jarvis-inference`; neither calls the other.

## Implemented runtime

The runtime includes bounded repository/Git tools, allowlisted command execution, sandbox/network policy, sessions/checkpoints, proof records, multimodal context, hierarchical instructions/memory, Skills/Hooks, deny-by-default MCP, repository/LSP intelligence, worktrees, plan mode, adaptive context, failure memory, multi-agent execution, heterogeneous routing, browser verification, background jobs/cron and observability.

## Development

```bash
python -m pip install -e . -r requirements.txt
black --check --diff src tests
ruff check src tests --select E9,F63,F7,F82
pytest -q --cov=. --cov-report=term-missing --cov-fail-under=70
python -m build
```

Additional guides:

- [Real workload efficiency benchmark](docs/real-workload-efficiency.md)
- [Operations](docs/operations.md)
- [Models and routing](docs/models.md)
- [MCP](docs/mcp.md)
- [Web search](docs/web-search.md)
- [v0.8 autonomous runtime](docs/v0.8-autonomous-runtime.md)
- [World-class readiness](docs/world-class-readiness.md)


### Production request path

Normal bare-task usage is **Jarvis CLI -> jarvis-inference -> model backend**. AI Stack is an optional consumer of the same inference contract.
