Documentation
Getting started
- Install — one unsigned Windows installer; the core downloads on first run.
- Create the first profile. By default the profile takes its GPU, fonts and screen from the machine it runs on, so it looks like the machine it runs on.
- Sign in to the cloud (Account → Cloud) with the same email and password as on this site, to sync profiles between your devices.
What the server can and cannot see
Read straight from the database of a running unit, not from a promise. In the clear: your email, whether two-step verification is on, a 16-byte login salt, the ids and names of your devices, the id and size of each synced profile, and a version vector. Sealed: the password (the server holds an Argon2id hash of a check value derived on your device — never the password itself), the two-step seed, every profile's contents, and the keys that open them. The server stores ciphertext it cannot read.
Local API · CLI · MCP
Everything the app does is a call. The daemon on your machine exposes a localhost HTTP API with an OpenAPI contract; the CLI and the MCP server are thin one-to-one wrappers over it, generated from the same contract, so nothing the interface can do is missing from the API. The MCP server ships closed by default: anything that can destroy or spend is behind a mode the operator sets outside the tool schema.
The published set
Thirteen documents from the product's own tree; the ones that would describe an unfinished decision or the browser core's patches stay internal. Each will be published from its source file, unedited, with internal links rewritten.
- Install and first run — one unsigned Windows installer, what lands where, the first run that fetches the core, SmartScreen (docs/90-meta/INSTALLER.md)
- What the server can and cannot see — read from a running unit's database: in the clear, sealed (docs/50-cloud/DEPLOY.md#0)
- Run the cloud yourself — the compose unit, secrets, TLS, backups, updating (docs/50-cloud/DEPLOY.md)
- MCP tool catalog — every MCP tool, the Local API method behind it, its danger level (docs/20-control-plane/MCP_TOOL_CATALOG.md)
- Glossary — the words the app, the CLI, the API and these pages use, exactly (docs/10-architecture/GLOSSARY.md)
- Local API — the localhost HTTP/JSON contract every client speaks; with contract/openapi.yaml (docs/20-control-plane/LOCAL_API_SPEC.md)
- CLI — vflin — one command per API method (docs/20-control-plane/CLI_DESIGN.md)
- MCP server and skill pack — driving Vflin from an AI agent; the danger gate; with MCP_TOOL_CATALOG.md (docs/20-control-plane/MCP_SKILL_PACK.md)
- Profiles and sync — signed, encrypted blobs; the lifecycle; version vectors; what a running profile never does (docs/30-core/PROFILE_STORAGE_SYNC.md)
- Fingerprint configuration — the validated identity catalogue and its consistency rules (docs/30-core/FINGERPRINT_CONFIG_CONTRACT.md)
- The consistency suite — what 'measured' means on the landing: the checks, the anti-artifact checks, the scorecard (docs/30-core/CONSISTENCY_SUITE.md)
- Security policy — what is gated where, and why a control never claims a gate the code does not run (docs/60-policy/SECURITY_POLICY.md)
- Threat model — who the adversaries are and what each can and cannot reach (docs/60-policy/THREAT_MODEL.md)