DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
Open source. Runs as a background service on your own machine. Plugins, a team of coding agents, web and terminal apps, and your chat apps.
Developer toolsPython · SvelteGitHub @lo9iOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Your own AI assistant, running on your computer: Telegram, WhatsApp, web and terminal; email, calendar, bills, servers and code. Plugins via MCP.
Loading the full README.
Read the full README ↗Your own AI assistant, running on your computer. Chat with it from Telegram, WhatsApp, Slack, the web or the terminal, and it handles your email, calendar, bills, servers and code. It remembers you across all of them.
Works with an Anthropic key, an OpenRouter key, any OpenAI-compatible API (including Ollama), or just a GitHub Copilot subscription.
Website: lo9i.com.ar · MIT licensed
Linux, macOS, WSL2
curl -fsSL https://raw.githubusercontent.com/lo9i/lo9i-assistant/main/install.sh | bash
It downloads the assistant into ~/lo9i-assistant, installs uv and the dependencies, and asks for your model provider and its key, which it saves in .env on that computer. It links the lo9i command into ~/.local/bin (adding that folder to PATH in your shell's profile when it isn't there) and installs its completion for bash, zsh or fish. On Linux it starts the assistant as a service that runs at boot; on macOS it tells you how to start it. Run it again to update.
--dry-run says what it would do and changes nothing; --no-path, --no-completion and --skip-shell (no shell profile changed) leave those parts out. Piped, pass them after bash -s --:
curl -fsSL https://raw.githubusercontent.com/lo9i/lo9i-assistant/main/install.sh | bash -s -- --help
| Command | What it does |
|---|---|
lo9i | Opens the chat in the terminal, starting the daemon if it isn't running (and Ollama, when .env points at it; the web app is built first when its code changed) |
lo9i doctor | Checks the setup: the daemon answering, the model's key, each plugin, email accounts, chat channels, the web app built, free disk space and the command on PATH, each with a fix. It works while the daemon is down too; --json prints it as JSON, and it exits with 1 when something fails. The apps show the same under Settings → Health (Check setup) |
lo9i daemon | Runs the daemon in the foreground; lo9i daemon restart restarts the running one once no reply is in progress |
lo9i completion bash|zsh|fish | Prints the shell completion script |
git clone https://github.com/lo9i/lo9i-assistant.git
cd lo9i-assistant
scripts/run.sh
The first run installs what's missing and asks for your model provider and its key. After that, scripts/run.sh opens the terminal app as lo9i does, building the web app first only when its code changed. The terminal app starts the daemon if it isn't running, and the daemon keeps running after the app closes, so the web app stays up at http://127.0.0.1:8765/app/.
scripts/run.sh never restarts a running daemon. After pulling or changing code, run scripts/restart.sh, which restarts it once no reply is in progress.
The daemon's log is ~/.lo9i/logs/daemon.log (Logs in the web app, /logs in the terminal app). A crash before logging starts is in ~/.lo9i/logs/output.log, shown there as output.
The model provider is set in the app (/model, or Settings → General → Model), which tests the key before saving, or in .env. The app's setting wins:
| Provider | Settings |
|---|---|
| Anthropic (default) | ANTHROPIC_API_KEY |
| OpenAI-compatible | PROVIDER=openai, OPENAI_API_KEY, and OPENAI_BASE_URL for other servers (Ollama) |
| GitHub Copilot | PROVIDER=copilot, COPILOT_GITHUB_TOKEN, and Copilot model ids (MODEL=claude-opus-5.5) |
| OpenRouter | PROVIDER=openrouter, OPENROUTER_API_KEY, and OpenRouter model ids (MODEL=anthropic/claude-opus-5.5) |
Other settings are listed in .env.example.
Everything else is set up from inside the app, not in .env. Secrets are typed in dialogs and stay in the daemon.
| What | Terminal app | Web app |
|---|---|---|
| The model (provider, key, models) | /model | Settings → General |
| Telegram, Slack (install the plugin, then set it up in its details) | /plugins | Settings → Plugins |
| Email (send and read, new-mail alerts): install the provider's plugin, then add accounts in its details | /plugins | Settings → Plugins |
| MCP servers | /mcp | MCP servers |
| Start at boot | /startup | Settings → General |
| Browsers on other computers | /devices | Devices |
Type / in the terminal app to list every command. You can also ask the assistant how to set something up.
The web app is served by the daemon at http://127.0.0.1:8765/app/. A browser must be paired with a one-time code from /devices before it can use the assistant. For access from other computers, set the HTTPS_* settings in .env.
This is the beginning of the README. Read the rest at the original. Read the full README ↗