Files
fidoca/README.md

2.7 KiB

FIDO a minimal coding assistant.

Fido is a console REPL assistant that inspects files, lists directories, searches file contents, applies changes, and runs shell commands (with user approval).

Install

Installs into ~/.fido and adds a fido launcher to your PATH via ~/.bashrc:

git clone <this-repo> ~/src/fidoca
cd ~/src/fidoca
./install.sh
source ~/.bashrc

The installer needs the sibling llmorbiter checkout (this project depends on it via file:../llmorbiter); it is bundled into ~/.fido/llmorbiter. Override its location with LLMORBITER_SRC=/path/to/llmorbiter.

Then, from any project directory:

fido                    # work on the current directory
fido /path/to/project   # work on a specific directory

Set OPENROUTER_API_KEY (and optionally TAVILY_API_KEY) in ~/.fido/.env.

File mentions

While typing a message, press Ctrl+O to open an in-prompt file browser. It is .gitignore-aware and hides dot-directories, just like list_files.

Key Action
↑ / ↓ Move the highlight
Enter Descend into a directory, or open the line selector
Tab Mention the highlighted file (whole file)
Backspace Go to the parent directory
Esc Cancel back to the prompt

In the line selector, ↑/↓ move the cursor, v starts/ends a range, g/G jump to the first/last line, and Enter inserts the mention.

The mention is plain text spliced in at the cursor; the model reads the file itself via read_file (it is a reference, not embedded contents):

Selection Inserted text
Whole file @src/fido.js
Line range @src/fido.js:120-145
Single line @src/fido.js:120

Paths are relative to the workspace root with forward slashes; line numbers are 1-based (the model maps them to read_file's 0-indexed seek).

Layout

~/.fido/
  app/                     the fido app (this repo)
  llmorbiter/              bundled dependency
  bin/fido                 the launcher (added to PATH)
  .env                     your config / API keys
  state/<workspace>/       per-workspace state
    undo.json
    suspends/

Undo and /suspend state is stored per workspace under ~/.fido/state/, so it never mixes between projects and never litters your repositories.

To remove everything: ./install.sh --uninstall.

License

0BSD