**FIDO** a minimal coding assistant. Fido is a console REPL assistant that inspects files, lists directories, finds files and directories by name, 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`: ```sh git clone ~/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: ```sh 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// 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](https://opensource.org/license/0bsd)