Context is the coding agent's real budget
Why mjj searches first, returns grounded line ranges, loads skills only when needed, and keeps its tool surface deliberately small.
A coding agent can spend a surprising fraction of its useful context proving
to itself that a repository contains files. The open-source
mojojojo agent, called
mjj, starts from the opposite assumption: search is a
budgeting decision.
Grounded results, not a second conversation
mjj search combines exact matches, lexical ranking,
and optional vector results. Every hit points back to a file and line range. The
agent can read more when the evidence calls for it, but the first search does not
pour the repository into the prompt.
mjj search "where are API retries handled?" src --stats mjj exec "find the cause of the failing router test and fix it"
The same rule applies to skills. A project may contain several specialised
workflows, but only their small metadata index is always present. The full
SKILL.md enters context when the task actually matches.
A small tool surface is easier to audit
The agent has bounded file, search, patch, and execution tools. Execution can use the local process, a jail, mojosub, or mojojojo depending on what is available and safe. A resumable session records what happened without pretending that a model message is proof that a test passed.
The project is early, working, and MIT licensed. Release archives include checksums; the binaries are not yet code-signed, so operating systems may ask for confirmation on first launch. The source and current limitations are visible in the repository rather than hidden behind the install command.
Product notes describe what is live at publication time. Anything still being designed is marked as a preview; source repositories carry their own build and test instructions.
