Flint docs

Flint is an offline orchestration layer and chat UI for local Ollama models: one Go binary, SQLite, and a light server-rendered UI, with nothing fetched from a CDN. The idea behind it is that a well-guided 3-4B model isn't an inferior model but an under-scaffolded one, so Flint's job is to be the best scaffolding around a small model without getting heavy itself: context that never overflows, shell commands that always wait for your approval, memory across chats, and web search only when you ask. Ollama cloud models work too, under the same rules, tagged as cloud, and each account can set its own context window for local and for cloud models.

New in 0.4.0: with a cloud model, a turn's edits are staged and reviewed together after its reply: one card shows every changed file, with Write all and Discard all, and halved the approvals for a change across two files in testing. Any diff with more than one change can be written in part, one checkbox per change. An edit that removes a name the file still uses (a rename that stopped at the import) is pointed at the lines that still use it. (features, experiments, changelog)

0.3.0 added file tools: the model reads, edits and creates files in your attached folder. It reads on its own, inside the folder only and never a secret the shield blocks (with a cloud model, only after you approve each read); every edit is shown as a red/green diff and written only when you approve it. The folder's real file paths now sit next to where the model writes, so it names files that exist instead of guessing, and any file it mentions that isn't there is flagged under its reply. (features, security, changelog)

An edit_file proposal shown as a red/green diff of config.yaml, max_connections 25 to 50, with Approve & write, Deny and Reply instead

0.2.0 added @agent <task>: a question over your folder split into subtasks, each run by its own agent, with one answer from their results (features).

Quick start#

You need Ollama running with a model pulled, for example ollama pull qwen2.5:3b.

With Docker (recommended; no clone needed). On Linux:

mkdir flint && cd flint && mkdir data
curl -O https://raw.githubusercontent.com/Lusan-sapkota/Flint/main/docker-compose.yml
docker compose up -d

Then open http://localhost:3141. On Mac and Windows, use docker-compose.desktop.yml instead, as shown in Install and run.

Or from source, with Go installed:

git clone https://github.com/Lusan-sapkota/Flint.git
cd Flint/backend
go run .

Then open http://localhost:8080 and sign up.

The docs#

Get started

  • Install and run: Docker and source, environment variables, health checks, and which models need which capabilities.

Using Flint

  • Features: everything Flint does, from a user's point of view.
  • Security: accounts, rate limits, the shell-command safety layers, and what leaves the machine.

How it works

  • Architecture: the pieces, repository layout, data model, a chat turn, the streaming protocol, why Flint is an orchestration layer, comparisons to generic agent CLIs, resource footprint, where the ideas come from and what was deliberately not built.
  • Context management: how a conversation is fit into a small model's window.

Evidence

  • Experiments: the measurements behind each design decision, including what failed and was rejected.
  • Benchmark: the scored benchmark, with and without each piece of scaffolding.
  • Testing: unit tests, live checks against Ollama, the long-chat run and the web re-ranking set. The scripts it uses are tools/long_chat.py and tools/web_rerank.py.

Project

  • Changelog: what changed in each release.
  • Contributing (on GitHub): for anyone working on the code. What fits, setup, what a pull request needs, and, for maintainers, how a release is made.

Screenshots#

An edit_file proposal shown as a red/green diff of config.yaml, max_connections 25 to 50, with Approve & write, Deny and Reply instead

An @agent plan: three subtasks with their files, one left to look through the folder itself, waiting for Run or Discard

Agent 3 asks to run a grep in the main chat, with Approve, Deny and Reply instead, under the folded agent plan card and its flint

The combined answer in the chat, under a From 3 agents block listing what each agent found

The agents window: each agent with its task and inputs, and Agent 3's transcript with the commands it ran and their output

An @web question answered from three ranked sources, listed above the answer

@memory save marks where a memory was saved; @memory recalls it in the chat

Elsewhere#

Every change to Flint updates the pages it affects, in the same commit.