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
28 changes: 17 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# reachpad CLI

Run coding agents in durable cloud workspaces: disk and memory survive the
machine underneath, so a paused workspace resumes mid-session.
Run coding agents in durable cloud workspaces: the disk survives the machine
underneath, so a paused workspace costs nothing and picks up from its last
save. Files survive a pause; running processes do not.

## Install

Expand Down Expand Up @@ -51,14 +52,19 @@ On a remote machine without a usable browser, run `reachpad auth login
credential flow remains available from
[reachpad.dev/connect](https://reachpad.dev/connect) as a recovery path.

Then list, create, or attach to a workspace:
Then create a workspace, work in it, and put it away:

```sh
reachpad ws list
reachpad ws create --name scratch
reachpad create scratch
reachpad list
reachpad attach <workspace-id>
reachpad run <workspace-id> -- cargo test
reachpad pause <workspace-id>
```

`create` prints the workspace id the other verbs take. The name is only a
label; there is no lookup by name.

Useful maintenance commands:

```sh
Expand All @@ -80,12 +86,12 @@ Docs: [reachpad.dev/docs/cli](https://reachpad.dev/docs/cli)
## Source and provenance

This repository carries the full CLI source: the `reach` package (shipped
binary name `reachpad`) and its three library crates (`proto`, the frozen
wire protocol; `authz`, Biscuit verify and offline attenuation; `runtime`,
the config and tracing shell). Release binaries are built from this source
by [the release workflow](.github/workflows/release.yml) on GitHub's
runners, and every release carries a SHA256SUMS the install script verifies.
To build it yourself (needs Rust and `protoc`):
binary name `reachpad`) and its two library crates (`proto`, the frozen wire
protocol, and `authz`, Biscuit verify and offline attenuation). Release
binaries are built from this source by
[the release workflow](.github/workflows/release.yml) on GitHub's runners, and
every release carries a SHA256SUMS the install script verifies. To build it
yourself (needs Rust and `protoc`):

```sh
cargo build --release -p reach
Expand Down
1 change: 1 addition & 0 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ case "$os/$arch" in
Linux/x86_64) target="x86_64-unknown-linux-musl" ;;
Linux/aarch64) target="aarch64-unknown-linux-musl" ;;
Darwin/arm64) target="aarch64-apple-darwin" ;;
Darwin/x86_64) target="x86_64-apple-darwin" ;;
*)
echo "reachpad: no prebuilt binary for $os/$arch." >&2
echo "Open an issue at https://github.com/Reachpad/reachpad-cli and we will add the target." >&2
Expand Down
9 changes: 6 additions & 3 deletions npm/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,21 @@ warm cache.
## Use it without installing

```sh
npx @reachpad/cli create --name scratch
npx @reachpad/cli run scratch -- cargo test
ws=$(npx @reachpad/cli create scratch)
npx @reachpad/cli run "$ws" -- cargo test
```

`create` prints the workspace id `run` takes. There is no lookup by name.

## The surface

```
reachpad create [name] make a workspace, print its id
reachpad list your workspaces and what each is doing
reachpad status <ws> state, save, lease, limits (--wait to block)
reachpad run <ws> -- <argv> run one command, waking a paused workspace
reachpad pause <ws> save disk and memory, stop the meter
reachpad attach <ws> an interactive terminal in the workspace
reachpad pause <ws> save the disk, stop the meter
reachpad fork <ws> branch new workspaces from the last save
reachpad archive <ws> free the slot; deletes nothing
reachpad events <ws> live event stream
Expand Down
Loading