mojojojo mojojojo

← Research

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.

Return the few line ranges that can change the next decision. A complete directory dump is not understanding; it is a bill the rest of the task has to pay.

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.