Docs

Windows 10/11, 64-bit. macOS and Linux aren't built yet.

Install

Two ways, same result. Flint installs per-user into %LOCALAPPDATA%, so nothing asks for admin.

From a terminal:

irm https://flint-83v.pages.dev/install.ps1 | iex

That resolves the newest release, downloads the installer, runs it silently and launches Flint. Or download the .exe and double-click it.

Sign in

Flint uses a device-code flow, the same shape as the GitHub CLI. The app shows you a code, opens your browser, and waits:

  1. Flint displays a code like KTPD-3M8R and opens /activate.
  2. You enter your email there and get a 6-digit code back.
  3. Enter it, and the app picks up its token on its own — nothing to paste.

The token lives in account.json under the app's user-data folder. You can see it and your spend any time on your account page.

Signing in is optional. It exists so you don't have to hold a provider key. If you'd rather use your own, skip it entirely — see bring your own key.

Your first task

Open a project folder and describe the outcome, not the steps. Flint reads files, runs commands and reports what it did:

› read the failing test and fix it

▸ reading  src/queue.test.ts
▸ running  npm test -- queue
  1 failing — retry() resolves before the backoff elapses
▸ editing  src/queue.ts
▸ running  npm test -- queue
  4 passing

It works best when it can check itself. A task with a test, a build or a linter attached to it comes back verified rather than merely plausible.

Browser control

Flint can drive the Chrome you already have — signed in, with your real session — rather than a headless browser that knows nothing about you. It's opt-in and takes one minute:

  1. Open chrome://extensions.
  2. Turn on Developer mode (top right).
  3. Load unpacked → pick the extension folder in Flint's install directory.

The app hosts a small HTTP bridge on 127.0.0.1:8790; the extension long-polls it and runs commands in your active tab. Supported commands are navigate, read, click and type.

curl -s -X POST http://127.0.0.1:8790/cmd \
  -H "content-type: application/json" \
  -d '{"command":"read"}'

The bridge is loopback only — it binds to 127.0.0.1, so a web page you visit cannot reach it. Only software already running on your machine can.

Bring your own key

Signed out, Flint talks to your provider directly and we're not in the path at all — nothing is metered, nothing is logged by us, and there's no allowance to run out of. Put the credentials in .env:

DEEPSEEK_API_KEY=sk-...
DEEPSEEK_BASE_URL=https://api.deepseek.com

Any OpenAI-compatible endpoint works — OpenRouter, a local llama.cpp server, your own gateway. Point DEEPSEEK_BASE_URL at it.

Signing in wins. When you're signed in, Flint's credentials override the ones in .env, so calls go through the Flint API and count against your allowance. Sign out to go back to your own key.

Models

Verified working today:

Change model in the app's settings. Rates for each are on the pricing page.

Settings are written to ~/.dsh/settings.yaml when you change them. Don't hand-edit that file while Flint is running — it gets rewritten underneath you. Use the settings UI.

Usage & billing

Flint bills per token at the model's rate plus 25%. There's no subscription and no seat count; a month you don't use costs nothing.

The reason the proxy exists at all: the provider key stays on our server and never ships inside the app. Your Flint token is stored as a SHA-256 hash, so a database leak yields nothing usable, and a leaked token costs you an allowance rather than exposing a key.

Updates

Two separate channels, deliberately:

Troubleshooting

Stuck on "Warming up"

The engine didn't start. It runs on your system Node, not the one inside the app, and it needs Node 22.6 or newer. Check with node -v; if it's older, or missing, install a current Node and restart Flint.

Browser commands do nothing

The extension only talks to a running Flint. Confirm the bridge is up — curl -s http://127.0.0.1:8790/ should list the commands. If it refuses the connection, Flint isn't running. If the extension is loaded but idle, reload it from chrome://extensions after starting Flint.

"quota_exceeded" on every message

You've spent this month's allowance. It resets on the 1st. Until then, use your own key — sign out and set DEEPSEEK_API_KEY.

The sign-in email never arrives

Email delivery is still being set up, and codes currently don't reach every address. If yours doesn't arrive, the activation page shows the code on screen instead so you can finish signing in.