diff --git a/README.md b/README.md index 78fbae4..a15b157 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
The desk stops mattering.
+Continue your Claude Code and Codex sessions on any screen.
-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/components/walkthrough.tsx b/site/src/components/walkthrough.tsx index a9ea46c..4a77264 100644 --- a/site/src/components/walkthrough.tsx +++ b/site/src/components/walkthrough.tsx @@ -33,13 +33,16 @@ import { cn } from '@/lib/utils' export function Walkthrough({ align = 'left', className, + id, }: { /** Follows the section it lands in, the same way InstallBlock does. */ align?: 'left' | 'center' className?: string + /** Set when something on the page links to the player. */ + id?: string }) { 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.
) } @@ -138,6 +139,29 @@ function InstallBlock({ align = 'left' }: { align?: 'left' | 'center' }) { ) } +/** + * The hero's second action, and deliberately the quieter one. + * + * Copying the install line is the thing this page is for, so the command keeps + * the loud treatment and this gets an outline. It points at the recording + * further down the page rather than at /docs/setup: the reader who wants to + * see it work before running a script into their shell is answered in place, + * without losing the page they were on. + */ +function WatchWalkthrough() { + return ( + + ) +} + /** * The two halves of the claim in one picture: the fleet on a machine, and the * ringed row of it open on a phone. They sit beside each other rather than @@ -175,6 +199,7 @@ function Hero() {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.