Skip to content

Fella v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 18:19
cfca646

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_sql against an in-memory SQLite table, or run_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 with grep_files and
    read whole with read_file. No index; works on every model provider.
  • .parquet needs 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/loginOllama 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 0600 auth.json, never in the settings database,
    localStorage, or the transcript.

Extensibility (opt-in, none bundled)

  • Packstheme (colour tokens), skill (vocabulary/rules fed to the
    model), and mcp (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+K command 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 | sh

Windows (PowerShell)

irm https://lilfella.app/install.ps1 | iex

Or 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 / Linux
Get-FileHash <file> -Algorithm SHA256   # Windows — compare by hand

Known limitations

  • Unsigned, no auto-updater. Re-run the install command (or re-download)
    to update.
  • run_python is 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.
  • .parquet requires building from source with --features duckdb.