Install and prerequisites
Fito has two halves. You browse it in a browser, which needs nothing installed. You play a case from your terminal, and that half is what you install here.
By the end of this page you have a pi session that knows about Fito. Playing a case is the next page — Play your first case.
Prerequisites
Section titled “Prerequisites”| Dependency | Version | What it is for |
|---|---|---|
| Node.js | 24 or newer | Running the Fito terminal package |
| A pi.dev runtime | Any recent version | The agent harness Fito ships into |
pi-subagents |
0.68.0 or newer | The worker transport the tutor and the scoring ride |
git |
Any recent version | Your case checkout |
gh, authenticated |
Any recent version | Forking a case, opening the submission pull request |
| An LLM provider configured in pi | — | The tutor and the scoring, which run on your subscription |
The terminal package talks to the hosted Fito, at https://fito.codes, unless
you point it at another Fito server. The last section of this page says how.
Install pi.dev and pi-subagents
Section titled “Install pi.dev and pi-subagents”-
Install the pi runtime and confirm it answers:
Terminal window npm i -g @earendil-works/pi-coding-agentpi --version -
Install the
pi-subagentspackage, which gives Fito the worker transport its tutor and its scoring both ride:Terminal window pi install npm:pi-subagentsIt is installed unversioned on purpose — it floats with its own releases. Fito needs 0.68.0 or newer, and says so as pi starts when yours is older.
pi-subagentsis by Nico Bailon, under the MIT license. -
Authenticate
ghwith the GitHub account you will use for Fito:Terminal window gh auth login
Confirm this step: pi --version prints a version, and gh auth status names
your account.
Configure an LLM provider
Section titled “Configure an LLM provider”The tutor and the scoring call a model, and pi makes that call on your account. Set up one provider before you use either. Installing Fito and loading it in a session need no provider, so this step can also wait.
Choose one way:
- A subscription. Start
pi, run/login, and select your provider. - An API key that pi keeps. Run
/login, select your provider, and paste the key. pi stores it for later sessions. - An API key in your environment. Export the provider’s variable before you
start pi — for example
ANTHROPIC_API_KEYfor Anthropic. - One session only. Start pi with
--provider,--modeland--api-key. A key passed this way wins over the other three.
The providers pi supports, and the variable each one reads, are on pi’s own Providers page.
Move off a clone install
Section titled “Move off a clone install”Skip this section if you never installed Fito from a clone of its repository.
Earlier versions of this page installed it that way, from tui/ in the clone.
A clone install and the npm install cannot live side by side. With both, pi
loads Fito twice and refuses to start, with
Tool "fito_knowledge_fetch" conflicts with …. So remove the clone install
before you install from npm:
- To find the clone install and its path, run
pi listin the folder you installed it from. - Remove it. Replace
INSTALL_PATHwith the path thatpi listshows:-
For an install made with
pi install -l, run this in the same folder:Terminal window pi remove -l INSTALL_PATHIf pi answers
Project is not trusted, add--approve. -
For any other install:
Terminal window pi remove INSTALL_PATH
-
Confirm it worked: run pi list in that folder again, and the path is gone.
Install the Fito package
Section titled “Install the Fito package”The Fito terminal package is on npm, as fito-tui. To install it, run:
pi install npm:fito-tuiFito then loads in every pi session, in any folder. To turn it off without
removing it, run pi config.
Check that it took
Section titled “Check that it took”Start a pi session in any folder. At session start, Fito’s startup extension
registers its six tools for the session. Its worker personas come from the
package itself: the package’s package.json names its agents/ folder, and
pi-subagents reads the personas there. Nothing is copied into your folder.
The direct check is a /fito- command. Type /fito- and the completion list
should offer the Fito commands; /fito-login is the one you want next.
As the session starts, Fito also checks three things, and shows a message when one fails:
pi-subagentsis missing. The tutor and the scoring reach their worker through that package, so neither works until you install it.pi-subagentsis older than 0.68.0.- The Fito server refuses your Fito package as too old.
Each message names the command that repairs it. All three are on Troubleshoot installation.
Update Fito
Section titled “Update Fito”When a new version of Fito is out, pi tells you as it starts. To install it, run this in your shell, then start pi again:
pi update --extensionsIt updates every package you installed with pi, pi-subagents among them.
pi does not check a clone install for a new version, so a clone install never hears of one. That is one more reason to move off it.
Point Fito at a different server
Section titled “Point Fito at a different server”One environment variable, FITO_URL, moves both halves of Fito. When it is
unset, the terminal package uses the hosted Fito, at https://fito.codes. Set
it to the address of another Fito, and the package finds the web app at that
address and the backend at the same address plus /api.
A local install of Fito serves both halves from http://localhost:8000. To use
one, set:
export FITO_URL=http://localhost:8000What’s next
Section titled “What’s next”- Play your first case — the whole path, end to end.
- Create an account and sign in — you need one before the terminal login.
- Troubleshoot installation — when something above did not go as written.