Fella v0.1.0
Fella is a small local-first desktop app for personal analytics. Point it at a
folder of your own files — bank statements, health exports, workout logs,
notes, receipts — and ask questions in plain language. Every answer is
produced by deterministic computation (SQL, or Python when SQL can't express
it) never by the model guessing, and every answer shows its working.
This is the first public build.
Core
- Plain-language questions over a folder of your own files — no schema, no
setup. Point Fella at a folder and start asking. - Deterministic answers. Every figure in a reply comes from a tool result —
run_sqlagainst an in-memory SQLite table, orrun_python(a restricted
subprocess) when SQL can't express the computation — never from the model
directly. - Verification pass. After answering, Fella re-runs the queries the answer
cites and confirms every number it stated actually appears in a real
result; a mismatch is surfaced, not hidden. - The working. A fold under every answer (
▸ working · N steps · …) shows
every tool call, the exact SQL/Python, sample rows, timings, and the
self-check results. - Read-only. Fella reads the folder you point it at; it never writes,
moves, or deletes anything there.
Supported files
- Tabular —
.csv.tsv.json.ndjson. Column types are inferred,
including currency written as text ($1,200.00, thousands separators,
accounting-style negatives), and loaded as SQL tables. - Spreadsheets —
.xlsx, one table per sheet. - Documents —
.pdf.txt.md.log, searched withgrep_filesand
read whole withread_file. No index; works on every model provider. .parquetneeds a source build with--features duckdb(not in the
default binary, kept small).
Models
- Local, private, default — a local Ollama install;
nothing leaves the machine. - Hosted, free —
/login→ Ollama Cloud, a free tier with starter
models, no local install needed. - Hosted, other providers — Vercel AI Gateway, OpenAI, xAI, OpenRouter, or
any OpenAI-compatible endpoint via/login, at your discretion (typically
paid per token). - API keys live in a
0600auth.json, never in the settings database,
localStorage, or the transcript.
Extensibility (opt-in, none bundled)
- Packs —
theme(colour tokens),skill(vocabulary/rules fed to the
model), andmcp(connect a remote data source over the Model Context
Protocol). Install from a local folder (/packs add <path>) or by id from
a small seed catalog (/packs install <id>, hash-checked downloads). fella.md— drop one in your folder to tell Fella how your files are
organised and what your terms mean. No pack required.
Interface
- One window: pick a folder, ask questions. Slash commands (
/open,
/files,/schema,/sql,/login,/model,/reindex,/packs,
/connect,/clear) are a power-user shortcut — you never need them. - Conversation tabs,
Ctrl+Kcommand palette, mid-run stop (Esc, or the
pulsing dot next to the composer), Markdown-rendered answers. - Configurable via environment variables:
FELLA_MAX_STEPS(agent step
budget),FELLA_QUERY_TIMEOUT_SECS(SQL timeout).
Install
macOS / Linux
curl -fsSL https://lilfella.app/install.sh | shWindows (PowerShell)
irm https://lilfella.app/install.ps1 | iexOr grab the build for your OS directly from this release: .dmg (macOS —
drag Fella to Applications, then right-click it → Open the first time),
-setup.exe / .msi (Windows — More info → Run anyway if
SmartScreen warns), or .AppImage / .deb (Linux).
Verify your download
Builds are unsigned — there's no code signing or notarisation yet. Check
your download against SHA256SUMS, attached to this release:
sha256sum -c SHA256SUMS # macOS / LinuxGet-FileHash <file> -Algorithm SHA256 # Windows — compare by handKnown limitations
- Unsigned, no auto-updater. Re-run the install command (or re-download)
to update. run_pythonis not a hostile-code sandbox. It runs in a restricted
subprocess (python3 -I, a fresh temp working directory, a stripped
environment, CPU/memory/file-size limits, a wall-clock timeout) — best-effort
isolation for analysing your own data, not a security boundary. It does not
confine filesystem reads to the workspace or block network access. Treat a
snippet as code you chose to run on your own machine.- The hosted pack marketplace isn't live yet.
/packs install <id>pulls
from a small seed catalog;/packs add <path>works fully offline. .parquetrequires building from source with--features duckdb.