mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 05:12:26 +00:00
Four new docs matching the morning-digest.md pattern: - deep-research.md — multi-hop research with document indexing - code-assistant.md — orchestrator with code execution + file I/O - scheduled-monitor.md — persistent operative on cron schedule - chat-simple.md — lightweight chat, simplest setup Updated quickstart with tabs for all agent types and expanded starter configs table from 3 to 7 presets. Updated MkDocs nav and index page to link all 5 user guides. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
138 lines
5.2 KiB
Markdown
138 lines
5.2 KiB
Markdown
# Code Assistant
|
|
|
|
An orchestrator agent with code execution, file I/O, and shell access. It can write scripts, read and explain code, run tests, fix bugs, and execute shell commands -- all locally on your machine.
|
|
|
|
## Quickstart (5 minutes)
|
|
|
|
### 1. Install and initialize
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
uv sync --extra dev
|
|
jarvis init --preset code-assistant
|
|
```
|
|
|
|
This writes a pre-configured `~/.openjarvis/config.toml` for the code assistant.
|
|
|
|
### 2. Start a local LLM via Ollama
|
|
|
|
```bash
|
|
# Install Ollama: https://ollama.com
|
|
ollama pull qwen3.5:9b
|
|
```
|
|
|
|
### 3. Ask a coding question
|
|
|
|
```bash
|
|
jarvis ask "Write a Python script that reads a CSV file and prints the top 5 rows"
|
|
```
|
|
|
|
The orchestrator agent will plan the approach, write the code, and can execute it if you approve.
|
|
|
|
## CLI Commands
|
|
|
|
```bash
|
|
# Ask a coding question (uses orchestrator agent by default with this config)
|
|
jarvis ask "Write a Python script that parses JSON from stdin"
|
|
|
|
# Read and explain existing code
|
|
jarvis ask "Read main.py and explain the architecture"
|
|
|
|
# Fix a bug
|
|
jarvis ask "Find and fix the bug in test_utils.py"
|
|
|
|
# Run tests
|
|
jarvis ask "Run the test suite and summarize any failures"
|
|
|
|
# Explicitly specify agent and tools
|
|
jarvis ask --agent orchestrator --tools code_interpreter "Calculate the first 20 Fibonacci numbers"
|
|
|
|
# Interactive chat for iterative coding
|
|
jarvis chat
|
|
```
|
|
|
|
## Configuration Reference
|
|
|
|
The preset writes this to `~/.openjarvis/config.toml`:
|
|
|
|
```toml
|
|
[engine]
|
|
default = "ollama"
|
|
|
|
[intelligence]
|
|
default_model = "qwen3.5:9b"
|
|
# default_model = "qwen3.5:35b" # Better for complex code tasks
|
|
|
|
[agent]
|
|
default_agent = "orchestrator" # Multi-turn with tool selection
|
|
max_turns = 10
|
|
|
|
[tools]
|
|
enabled = ["code_interpreter", "file_read", "file_write", "shell_exec", "web_search", "think", "calculator"]
|
|
```
|
|
|
|
### Key settings
|
|
|
|
| Setting | Default | Description |
|
|
|---------|---------|-------------|
|
|
| `intelligence.default_model` | `qwen3.5:9b` | The model for code generation. Use `qwen3.5:35b` for complex tasks like refactoring or multi-file changes. |
|
|
| `agent.default_agent` | `orchestrator` | Multi-turn agent that picks tools iteratively until it has an answer. |
|
|
| `agent.max_turns` | `10` | Maximum tool-calling iterations. Increase for multi-step tasks. |
|
|
| `tools.enabled` | 7 tools | `code_interpreter` (execute Python), `file_read`, `file_write`, `shell_exec` (run shell commands), `web_search`, `think`, `calculator`. |
|
|
|
|
### Tools explained
|
|
|
|
| Tool | What it does |
|
|
|------|-------------|
|
|
| `code_interpreter` | Executes Python code in a sandboxed environment and returns output. |
|
|
| `file_read` | Reads files with path validation. The agent can inspect source code, configs, logs. |
|
|
| `file_write` | Writes or modifies files. The agent can create scripts, patch code, write configs. |
|
|
| `shell_exec` | Runs shell commands (e.g., `git status`, `pytest`, `ls`). |
|
|
| `web_search` | Searches the web for documentation, Stack Overflow answers, etc. |
|
|
| `think` | Internal reasoning scratchpad for planning multi-step solutions. |
|
|
| `calculator` | Evaluates mathematical expressions. |
|
|
|
|
## Example Tasks
|
|
|
|
```bash
|
|
# Write a new script
|
|
jarvis ask "Write a Python script that converts YAML to JSON"
|
|
|
|
# Explain existing code
|
|
jarvis ask "Read src/openjarvis/core/events.py and explain the EventBus pattern"
|
|
|
|
# Debug a failing test
|
|
jarvis ask "Run pytest tests/test_memory.py -v and fix any failures"
|
|
|
|
# Refactor code
|
|
jarvis ask "Read utils.py and refactor the parse_config function to use dataclasses"
|
|
|
|
# Generate tests
|
|
jarvis ask "Read src/openjarvis/tools/calculator.py and write unit tests for it"
|
|
|
|
# Shell tasks
|
|
jarvis ask "Find all Python files larger than 100KB in this repo"
|
|
```
|
|
|
|
## Safety Notes
|
|
|
|
The `shell_exec` and `code_interpreter` tools execute real commands on your machine. Keep these in mind:
|
|
|
|
- **shell_exec** runs commands in your current user context. It can read, write, and delete files. Avoid running the agent on directories containing sensitive data without reviewing tool calls.
|
|
- **code_interpreter** executes Python code. It has access to your Python environment and installed packages.
|
|
- The agent asks for confirmation before executing potentially destructive commands when running in interactive mode (`jarvis chat`).
|
|
- For stronger isolation, use the sandboxed agent: `jarvis ask --agent sandboxed --tools code_interpreter "..."`, which runs inside a Docker/Podman container.
|
|
|
|
## Troubleshooting
|
|
|
|
**"Tool not found: code_interpreter"** -- Make sure your `config.toml` includes `code_interpreter` in the `tools.enabled` list.
|
|
|
|
**Agent loops without progress** -- Increase `max_turns` if the task is complex, or use a larger model (`qwen3.5:35b`). The 9b model handles most single-file tasks; multi-file refactoring benefits from more parameters.
|
|
|
|
**Shell command fails** -- The `shell_exec` tool runs commands relative to where you launched `jarvis`. Use `cd /path && command` in your prompt if needed, or run `jarvis` from the project directory.
|
|
|
|
**Web search not working** -- Install with `uv sync --extra tools-search` and set `TAVILY_API_KEY`.
|
|
|
|
**Code execution hangs** -- The `code_interpreter` has a default timeout. Long-running scripts will be terminated. Break large tasks into smaller steps.
|