Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ ctrlc = { version = "3.4", features = ["termination"] }
dialoguer = "0.11"
dirs = "6.0"
flate2 = "1.1"
fs2 = "0.4"
hostname = "0.4"
if-addrs = "0.15"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ fleet is mostly an opinionated setup around things your computers already know h
- shell and tmux colors make it obvious which machine you are using
- a generated fleet skill makes the machine list readable by compatible coding agents

fleet does not proxy normal work after setup. `ssh emerald.local`, scp, sftp, and ordinary remote commands are still just normal ssh.
Fleet does not terminate or relay normal work after setup. `ssh emerald.local`, scp, sftp, and ordinary remote commands remain normal OpenSSH; Fleet's tiny local ProxyCommand only chooses the LAN or an already-connected Tailscale socket before OpenSSH performs its usual key exchange.

interactive ssh enters the persistent tmux session by default. bypass it once with:

Expand All @@ -78,7 +78,7 @@ ssh -t emerald.local 'NO_TMUX=1 exec "$SHELL" -l'

## trust and privacy

fleet has no accounts, hosted control plane, relay, or telemetry. its state and coordination stay on your local network. installing fleet, system packages, codex, or claude code can obviously contact their official download sources.
fleet has no Fleet-hosted accounts, control plane, relay, or telemetry. its state and coordination stay local. when Tailscale is already installed and connected, Fleet can use the user's Tailnet for private remote reachability; Tailscale may use its own coordination service or DERP relays. installing fleet, system packages, codex, or claude code can obviously contact their official download sources.

captain discovery uses unauthenticated mdns. `fleet join` shows you the captain and its fingerprint before trusting it, which is trust-on-first-use for a trusted lan, not magic cryptographic proof that the person next to you is not doing something weird.

Expand All @@ -90,10 +90,10 @@ fleet uses the operating system's openssh client for machine-to-machine commands

- macos or debian/ubuntu linux with systemd and apt
- bash or zsh
- machines on the same trusted local network
- machines on a trusted local network for initial joining
- one captain and one fleet per machine

fleet does **not** do tailscale, task orchestration or windows. it just gives tools access to machines, it does not become the tool using them.
fleet does optional Tailscale routing for members after their normal join or the next `fleet update-all`, while preserving ordinary `ssh <name>.local`; it does not install or administer Tailscale. Fleet also does not do task orchestration or Windows. it gives tools access to machines, it does not become the tool using them.

## gpt-5.6

Expand Down
7 changes: 3 additions & 4 deletions docs/product-vision.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ The topology is intentionally asymmetric. The captain can access members. Fleet

### Local first

Fleet state and Fleet protocol traffic stay on the user's network. Fleet has no hosted control plane, account system, relay, or telemetry. Core operations remain useful without internet connectivity after required software has been installed.
Fleet state and Fleet protocol traffic stay on the user's network. Fleet has no hosted control plane, account system, relay, or telemetry. Core operations remain useful without internet connectivity after required software has been installed. When a user already runs Tailscale, Fleet may use it as an optional local endpoint substrate; Fleet does not administer that network.

Fleet may download Fleet releases, operating-system packages, and selected tools from their official sources. "Local first" applies to state and coordination, not to ordinary software downloads.

Expand Down Expand Up @@ -188,7 +188,7 @@ The user installs Fleet on another machine, opens a shell there, and runs `fleet

### Use the fleet

The user or an agent on the captain accesses a member using ordinary SSH and its `.local` hostname. Fleet does not wrap every remote command and does not need to remain in the execution path.
The user or an agent on the captain accesses a member using ordinary SSH and its `.local` hostname. Fleet does not terminate or relay SSH; a small local selector may remain in the connection path only to choose the LAN or an already-connected Tailscale socket.

`fleet status` exposes the locally known topology and machine metadata. Detailed liveness monitoring, task tracking, and workload telemetry are not part of the product.

Expand Down Expand Up @@ -242,7 +242,7 @@ For v0, the skill exists only on the captain. File transfer and skill replicatio

- Delegation, orchestration, scheduling, or task tracking
- Machine recommendations, descriptions, or workload roles
- Tailscale or other remote-network integration
- Task orchestration, scheduling, and hosted remote-network control planes
- Fleet-owned relay, cloud API, accounts, or telemetry
- File transfer, synchronization, or repository distribution
- Member-to-member SSH trust
Expand All @@ -258,7 +258,6 @@ For v0, the skill exists only on the captain. File transfer and skill replicatio

## Deferred possibilities, not commitments

- Tailscale as an additional transport while preserving Fleet identity
- `fleet sync` or `fleet transfer` for explicit file movement
- Skills on members after synchronization exists
- Additional installable tools
Expand Down
Loading