Metadata-Version: 2.4
Name: jarvis-agent-cli
Version: 0.10.6
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.16.1
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.

## Current contract line

Jarvis **0.10.6** consumes the provider-neutral Jarvis Core **0.16.1** common-brain contracts. Cloud completion is bound to the exact local run ID and requires real passing test records.

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

Jarvis is the user-facing CLI for the AI Stack control plane. Normal interactive work sends agent runs to AI Stack; AI Stack owns orchestration, tools, memory and RAG, and calls the dedicated jarvis-inference gateway only when model inference is needed. Direct model access is an explicit local/diagnostic mode.

## 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.10.6 consumes `jarvis-agent-core==0.16.1` 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.16.1 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 the task-level real workload corpus and evaluation. The benchmark covers CI triage, provider architecture, release readiness, PR review, documentation alignment and efficiency audits. Runtime execution telemetry and route calibration belong to AI Stack; `jarvis-core` supplies the provider-neutral observation and calibration contract.

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 to AI Stack

Normal repository work uses AI Stack. AI Stack owns orchestration, tools, memory and RAG and calls jarvis-inference only when inference is required.

```bash
export AI_STACK_BASE_URL=http://<ai-stack-host>:8081
export AI_STACK_API_KEY=<the-ai-stack-AGENT_API_KEY>
export JARVIS_MODEL=qwen3:1.7b

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

Direct inference configuration is diagnostic/developer-only.

## Connect a model

```bash
export JARVIS_PROVIDER=openai
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"
```

Named profiles, fallback and automatic measured routing are documented in [docs/models.md](docs/models.md).

## 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 Jarvis usage is **Jarvis CLI -> AI Stack -> jarvis-inference -> Ollama**. Configure Jarvis with `AI_STACK_BASE_URL` and `AI_STACK_API_KEY`; AI Stack owns the inference connection and model routing. Direct model access is available only through the explicit `jarvis local` developer path.
