Skip to content

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.

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.

  1. Install the pi runtime and confirm it answers:

    Terminal window
    npm i -g @earendil-works/pi-coding-agent
    pi --version
  2. Install the pi-subagents package, which gives Fito the worker transport its tutor and its scoring both ride:

    Terminal window
    pi install npm:pi-subagents

    It 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-subagents is by Nico Bailon, under the MIT license.

  3. Authenticate gh with 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.

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_KEY for Anthropic.
  • One session only. Start pi with --provider, --model and --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.

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:

  1. To find the clone install and its path, run pi list in the folder you installed it from.
  2. Remove it. Replace INSTALL_PATH with the path that pi list shows:
    • For an install made with pi install -l, run this in the same folder:

      Terminal window
      pi remove -l INSTALL_PATH

      If 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.

The Fito terminal package is on npm, as fito-tui. To install it, run:

Terminal window
pi install npm:fito-tui

Fito then loads in every pi session, in any folder. To turn it off without removing it, run pi config.

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-subagents is missing. The tutor and the scoring reach their worker through that package, so neither works until you install it.
  • pi-subagents is 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.

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:

Terminal window
pi update --extensions

It 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.

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:

Terminal window
export FITO_URL=http://localhost:8000