From 3ca20d6c1155f735bfd39dbd021772a0bd6ff7dc Mon Sep 17 00:00:00 2001 From: Karn Date: Wed, 12 Aug 2026 03:21:05 +0530 Subject: [PATCH 1/2] docs(site): say what flue is, in the words people search for The hero led with "The desk stops mattering," which is a mood rather than a description: a reader who has never heard of flue could not tell from it what the thing does or who it is for. The headline now names the job directly, and names the two agents most people arrive here running. - Hero headline and subline, the README tagline and intro, the meta title and description, and the llms.txt lede all lead with continuing a Claude Code or Codex session on another screen. - Two section headings that were being clever stop being clever: "Finding one of them is the other half" is now "One keystroke to any session on any machine," and "Install it, then close the tab on purpose" is now "Install flue on the machine that runs the work." - The hero no longer carries the builds-and-SSH claim, so the sessions section says it instead: detaching keeps the agent working, the build running and the SSH session up. Being specific in the headline should not narrow what the product is. - llms.txt still said the relay had not been through its end-to-end gate. It has, and the README has said so since v0.5.1. - FOLLOW-UPS.md speculated about a multi-tenant relay on flue.sh, which contradicts the no-hosted-service claim everywhere else. Rewritten around the only deployment that exists: one you own. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 14 ++++++++------ docs/FOLLOW-UPS.md | 15 ++++++--------- site/public/llms.txt | 10 +++++----- site/src/routes/__root.tsx | 6 +++--- site/src/routes/index.tsx | 20 ++++++++++---------- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 78fbae4..a15b157 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

flue

-

The desk stops mattering.

+

Continue your Claude Code and Codex sessions on any screen.

CI status @@ -24,11 +24,13 @@

-Builds, agents and SSH sessions keep running on the machine that owns them. -Every one of them is one tab away, on any screen you have. A small Go daemon -holds the shells and their scrollback, and a web app draws them. Closing the -tab does not kill a session. It only detaches it, and reattaching replays what -you missed. +Start on your laptop. Check in from your phone or iPad. Pick up again at your +desk. The shell stays on the machine; flue moves the view. + +A small Go daemon holds the shells and their scrollback, and a web app draws +them. Closing the tab does not kill a session. It only detaches it: the agent +keeps working, the build keeps running, the SSH session stays up, and +reattaching replays what you missed. - **Sessions outlive the tab.** Close it and the build keeps running. - **One list, every machine.** Name, tag, pin, group and search the whole diff --git a/docs/FOLLOW-UPS.md b/docs/FOLLOW-UPS.md index 05a1bd4..3e6a5ef 100644 --- a/docs/FOLLOW-UPS.md +++ b/docs/FOLLOW-UPS.md @@ -479,15 +479,12 @@ documented promise depends on. Distinct from item 10, which is the daemon's own outbound queue rather than the relay's. - **Still open, and it changes character on a hosted relay.** Self-hosted, the - person streaming `yes` and the person holding the Cloudflare account are the - same person, so the missing cap costs them their own free tier and nothing - else. On flue.sh one Worker's allowance is shared by everybody: one account's - runaway session is spent against every other account's availability as well - as against the operator's bill. Nothing about a multi-tenant relay makes the - cap harder to write — it makes it the first thing the scale pass has to do, - and the counters that would size it now have to be read off a deployment - rather than off a dogfooding month. + **Still open.** Every relay is one you deployed into your own Cloudflare + account, so the person streaming `yes` and the person holding the account are + the same person: the missing cap costs them their own free tier and nobody + else's. That is what keeps this a follow-up rather than a blocker. The + counters that would size the cap come off a dogfooding month, which is the + work this item is waiting on. - **`POST /api/pair` is credential-less and internet-reachable, and nothing rate limits it.** It has to be credential-less — the device presenting a pairing token is by definition a device holding no credential — and the diff --git a/site/public/llms.txt b/site/public/llms.txt index 374c4d7..de5f321 100644 --- a/site/public/llms.txt +++ b/site/public/llms.txt @@ -1,6 +1,6 @@ # flue -> flue keeps your terminal sessions alive on the machine that owns them and hands them back on any device you have. A small Go daemon owns the shells and their scrollback, and a web app draws them. Closing the tab does not kill a session. It only detaches it, so a build, an agent run or an SSH session keeps going, and reattaching replays what was missed. One keystroke opens every session on every machine at once. +> flue lets you continue your Claude Code and Codex sessions on any screen: start on your laptop, check in from your phone or iPad, pick up again at your desk. A small Go daemon owns the shells and their scrollback, and a web app draws them, so the shell stays on the machine and flue only moves the view. Closing the tab does not kill a session. It only detaches it, so a build, an agent run or an SSH session keeps going, and reattaching replays what was missed. One keystroke opens every session on every machine at once. flue is open source (MIT), pre-1.0, and free. It installs as one static Go binary on macOS, Linux and WSL, with no Node, Python or other toolchain. @@ -13,10 +13,10 @@ the daemon's static key pinned when a browser pairs, so the Worker forwards ciphertext it holds no key for. flue.sh serves docs and downloads and is never part of the data path. -Status: the local terminal, the login service, the fleet-wide sessions list and -the end-to-end pairing all work. The Cloudflare relay is built and deployable -but has not been through its manual end-to-end gate against a real account. -It is ready to try rather than ready to rely on. +Status: released and in daily use. The local terminal, the login service, the +fleet-wide sessions list, pairing and the Cloudflare relay all work, and the +relay has been through its manual end-to-end gate against a real account. It is +0.x, so commands, flags and the config file can still change between releases. ## Install diff --git a/site/src/routes/__root.tsx b/site/src/routes/__root.tsx index cd71497..19e3756 100644 --- a/site/src/routes/__root.tsx +++ b/site/src/routes/__root.tsx @@ -4,9 +4,9 @@ import type { ReactNode } from 'react' import { SITE_URL } from '@/lib/site' import appCss from '@/styles.css?url' -const TITLE = 'flue: every terminal session you have running, one tab away' +const TITLE = 'flue: continue your Claude Code and Codex sessions on any screen' const DESCRIPTION = - 'Builds, agents and SSH sessions keep running on the machine that owns them. Every one of them is one tab away, on any screen you have. One static Go binary, no hosted service.' + 'Start on your laptop, check in from your phone or iPad, pick up again at your desk. A small Go daemon holds your terminals, so closing the tab detaches a session instead of killing it. One static Go binary, no hosted service.' export const Route = createRootRoute({ head: () => ({ @@ -25,7 +25,7 @@ export const Route = createRootRoute({ { property: 'og:image:height', content: '630' }, { property: 'og:image:alt', - content: 'flue: every session on every machine you own, one tab away', + content: 'flue: your agent, build and SSH sessions on every screen you own', }, { name: 'twitter:card', content: 'summary_large_image' }, { name: 'theme-color', media: '(prefers-color-scheme: light)', content: '#ffffff' }, diff --git a/site/src/routes/index.tsx b/site/src/routes/index.tsx index c1fda52..0008183 100644 --- a/site/src/routes/index.tsx +++ b/site/src/routes/index.tsx @@ -105,8 +105,8 @@ function Eyebrow() { function Headline() { return ( -

- The desk stops mattering. +

+ Continue your Claude Code and Codex sessions on any screen.

) } @@ -114,8 +114,8 @@ function Headline() { function Subline() { return (

- Builds, agents and SSH sessions keep running on the machine that owns them. Every one of them - is one tab away, on any screen you have. + Start on your laptop. Check in from your phone or iPad. Pick up again at your desk. The shell + stays on the machine; flue moves the view.

) } @@ -205,8 +205,8 @@ function Sessions() {

Why it exists

- I wanted my 10,000 steps. Coding agents had other plans, and I am not buying a - walking pad. So now I start the run on my machine, go for the walk, and read the + I wanted my 10,000 steps. Claude Code and Codex had other plans, and I am not buying + a walking pad. So now I start the run on my machine, go for the walk, and read the answer on my phone.