macOS · Apple Silicon
arm64 · code-signed (ad-hoc)
Download .tar.gz sha256Your AI pair-programmer has amnesia. Float is the cure — a local daemon that remembers tasks, caches HTTP, pre-indexes your repos, and shrinks LLM prose to a fraction of its token cost.
All artifacts are mirrored to Cloudflare R2 at
float-release.benehiko.com. Each tarball ships with a
.sha256 sidecar — verify before extracting.
arm64 · code-signed (ad-hoc)
Download .tar.gz sha256amd64 · glibc
Download .tar.gz sha256arm64 · glibc
Download .tar.gz sha256not yet supported
Float embeds a Linux daemon image and signs Mach-O binaries on macOS for virtualization entitlements. Windows support is on the roadmap.
# macOS / Linux
shasum -a 256 -c float-vX.Y.Z-<platform>.tar.gz.sha256
# extract
tar -xzf float-vX.Y.Z-<platform>.tar.gz
# install (copies to ~/.float/bin/ and starts the daemon)
./float install
A sidecar daemon that gives Claude Code the long-term memory and offline intelligence it doesn't ship with.
Tasks, decisions, blockers, and outcomes survive across sessions in a local SQLite store. Resume work without re-explaining yesterday.
A forward HTTP/HTTPS proxy with TLS interception caches every cacheable response. Repeat hits to docs, GitHub, and APIs come straight from disk.
Git history, file trees, and source code are pre-indexed in the background. Semantic search over commits and code chunks via MCP tools.
The optional claude-lang mode swaps common English words for single CJK glyphs on the wire — roughly 75% fewer output tokens — and decodes back to plain English before you read it.
A live dashboard at https://localhost:7680/dashboard/ and a TUI (float watch) show indexing progress, proxy traffic, hook events, and resource use.
Claude Code ──stdio──▸ MCP Bridge ──HTTPS──▸ floatd
├── Task Memory (SQLite + sqlite-vec)
├── Git Intel (background watcher)
├── Code Search (semantic, chunked)
├── File Tree (cached dir structures)
├── Token Tracker (per-session analytics)
├── Proxy (HTTPS MITM, response cache, blocklists)
└── Dashboard (Go templates + htmx)
HTTPS_PROXY clients ──HTTP CONNECT──▸ floatd :7681 (TLS intercept, DNS via Quad9)
127.0.0.1:7680 for the API and :7681 for the proxy. TLS certificates are generated on first start.task_log, code_search, and git_history.
Prerequisites: a container runtime (docker or nerdctl) and the claude CLI on your $PATH.
Grab the tarball for your OS from the downloads section and extract it.
tar -xzf float-vX.Y.Z-darwin-arm64.tar.gz
./float installThe binary installs itself into ~/.float/bin/, starts the daemon, waits for it to report healthy, and registers the Claude Code plugin.
./float install
The installer aborts before touching ~/.claude/settings.json if the daemon fails to start, so your Claude config never points at a dead service.
Float wires up MCP tools and hooks automatically. Restart the editor so it picks up the new settings.json.
Replace the binary, then refresh the daemon image.
# 1. Download the new tarball (see Downloads) and extract
tar -xzf float-vX.Y.Z-<platform>.tar.gz
# 2. Re-run install — copies the new binary to ~/.float/bin/,
# refreshes the embedded daemon image, and recreates the
# floatd container in place.
./float install
# 3. Verify
float version
float status
Float embeds the linux daemon OCI tar into the binary at release time, so a binary upgrade also upgrades the daemon image. The install step recreates the running container so it picks up the new image.
A forward HTTP/HTTPS proxy with TLS intercept, response caching, and blocklists. Off by default.
float proxy enable # writes HTTPS_PROXY / HTTP_PROXY / NODE_EXTRA_CA_CERTS
# into ~/.claude/settings.json
# restart Claude Code so it re-reads settings.json
float proxy status # confirm listener is reachable
If you already have HTTPS_PROXY set (corporate proxy, mitmproxy), float proxy enable refuses to overwrite it. Clear the existing value first.
float proxy disable # removes the entries from ~/.claude/settings.json
# restart Claude Code
export HTTPS_PROXY=http://127.0.0.1:7681
export HTTP_PROXY=http://127.0.0.1:7681
# Trust the float CA so intercepted TLS connections validate
curl -sk https://127.0.0.1:7680/api/v1/proxy/ca.crt > ~/.float/data/certs/ca.pem
export NODE_EXTRA_CA_CERTS=~/.float/data/certs/ca.pem
Two layers: cache the network, compress the prose.
The proxy turns "Claude fetches the same 50 KB documentation page six times a day" into "Claude fetches it once, the next five reads come from a local SQLite blob in milliseconds". You don't pay for the bytes again and the model doesn't burn input tokens parsing a slightly different copy of the same page.
Float embeds claude-lang, a tiny lossless transpiler that swaps
common English words for single CJK glyphs. The model emits
丯ing 三 〔file〕 on the wire (one token each) and a
decoder restores
building to file before the user reads it.
The hot table covers articles, conjunctions, prepositions, modal verbs, and the most common nouns/verbs in dev prose — roughly 75% of the word-count of a typical assistant reply. Code blocks, file paths, and identifiers are wrapped in literal escapes so they pass through unchanged.
It's opt-out. Toggle with float cl disable /
float cl enable if the extra MCP round-trip hurts latency
more than the token cost helps.
Hooks intercept Claude's Grep / Glob /
find / ls calls and suggest pre-indexed
alternatives backed by local embeddings. Same answers, fewer tool
round-trips, far fewer tokens spent reading directory listings.
Every tagged release is mirrored to R2 with sha256 sidecars and a changelog generated from commit history.
Loading release history…