Joshu
A coding agent for your terminal. Describe a task in plain language and Joshu reads and searches your code, edits files and runs commands until it's done, asking before anything risky. It works with any OpenAI-compatible model provider, including free and local models.
joshu "add a --verbose flag to the CLI and update the tests"
Features
- Agent loop: the model uses tools (read, search, edit, shell, web, sub-agents, MCP servers), sees the results and keeps going until the task is done; independent reads and sub-agents run in parallel
- Permissions and safety: edits show a diff and commands ask first;
accept_edits, read-onlyplanandbypassmodes;.envfiles, keys and credentials need explicit approval and secrets are masked in tool output - Any provider: NVIDIA, OpenRouter, OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Ollama, LM Studio, vLLM or any OpenAI-compatible endpoint; live model lists, named models, retries and fallback models
- Code intelligence: language-server errors after every edit, plus go-to-definition, references and hover
- Interactive mode: themes, a
/command menu with ~50 commands, Esc to interrupt,/rewind,/compact,/init, skills and memory across sessions - Lean on tokens: on-demand tool loading, compact results and context clearing keep a plain "hi" around 2k tokens
- Extensible: custom commands, sub-agents, skills, hooks, MCP tools, prompts and resources, output styles
- Programmable: a Python SDK, JSON / streaming JSON output, an HTTP server
(
joshu serve) and a GitHub Action that works on@joshucomments
Install
Python 3.10 or newer.
pipx install joshu # or: pip install joshu
From source: git clone https://github.com/Faycalraghibi/Joshu.git && cd Joshu && pip install -e .
(add [use] for semantic memory, [a2a] for the HTTP server).
Set up a model
The default is NVIDIA's free Nemotron 3.5 Lightning. Get a free key at
build.nvidia.com and put it in .env or your
environment:
NVIDIA_API_KEY=nvapi-...
Check the setup with joshu then /doctor. To use something else:
joshu providers # providers and key status
joshu models -p openrouter --tools --free # browse a provider's models
joshu use qwen3-coder -p ollama # local models, no key needed
Use
joshu # interactive (/help, ? for shortcuts)
joshu "why does test_login fail?" # one task
joshu run --permission-mode plan "how is auth implemented?" # read-only
joshu run -p --output-format json "list the TODOs" # for scripts
joshu run --continue "now add tests for it" # continue the last conversation
From Python:
from joshu import run
print(run("summarize README.md").text)
Documentation
- Quick start
- Agent: permissions, tools, memory, skills, sandbox
- Interactive mode and slash commands
- Models & providers
- Python SDK and streaming
- GitHub Action
- Hooks · MCP servers · Configuration
- Roadmap · All documentation
License
MIT
Metadata
Release files for joshu 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| joshu-0.3.0.tar.gz | 283.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| joshu-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 620.4 kB
Release files / joshu-0.3.0.tar.gz
| Download URL | joshu-0.3.0.tar.gz |
|---|---|
| Size | 283.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1b521ee9ae663fcc2587c304ddc38d21bf1f2b51fb582abb8be850f6a48f638
|
|
BLAKE2b-256 checksum How to use checksums |
c737a4bc8b67f8529046b15c89db5f8462ffb85282345e486e89d9a0e080ef2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / joshu-0.3.0-py3-none-any.whl
| Download URL | joshu-0.3.0-py3-none-any.whl |
|---|---|
| Size | 337.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c622ff6645313acb59dcf7848ec0288b4a0f738624dd154d4e2f2232134f87ab
|
|
BLAKE2b-256 checksum How to use checksums |
37e0ada839638d37fe14d28f02d97a6c8bc195b90765190982118629fc7c751f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log