Metadata-Version: 2.4
Name: jarvis-agent-cli
Version: 0.11.2
Summary: Standalone and remote terminal coding agent
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.2** consumes the provider-neutral Jarvis Core **0.17.2** contracts. Cloud completion is bound to the exact local run ID and requires real passing test records.

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. Bare tasks run the agent loop and tools on the user's machine and send model requests directly to the separately deployed `jarvis-inference` HTTP API; the gateway is not a Python dependency. Verify the deployed gateway commit or image digest and API compatibility. Use a published immutable release image only when choosing the prebuilt-image deployment path. AI Stack is an optional sibling service for durable remote runs, shared queues, persistence, retrieval, integrations and UI; Jarvis does not require it for local work.

## 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.2 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 provider-specific execution policy in the CLI, while shared efficiency and calibration contracts remain reusable across local and remote providers without adding provider SDKs to 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, automatic and cloud-first 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.

## Optional AI Stack integration

Use AI Stack when you need its durable remote Runs API, shared queues, persisted run history, retrieval, integrations or web UI. Configure `AI_STACK_BASE_URL` and `AI_STACK_API_KEY`, then make the server boundary explicit:

```bash
export AI_STACK_BASE_URL=http://<ai-stack-host>:8081
export AI_STACK_API_KEY=<your-ai-stack-agent-key>
jarvis run "review this repository" --workspace /workspace/repo
jarvis cloud health
```

`jarvis run` and `jarvis cloud` are explicit remote operations; they are not prerequisites for local work. See [docs/architecture.md](docs/architecture.md) for ownership boundaries and migration details.

## Jarvis versus Server

| Need | Use |
| --- | --- |
| Local repository work, interactive terminal, local automation | **Jarvis** |
| Durable cloud tasks, shared queues and external workers | **Server** |

Jarvis and Server share stable contracts through `jarvis-agent-core`, while tool execution and storage policy remain separate.

## 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, observability and the remote Run/cloud worker protocol.

## 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.
