You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replaces the tmux-based `min run dev` layout with zellij: a 2-pane
session (Claude + interactive shell) plus a banner pane that prints
the available `min run <task>` shortcuts. Adds a `fast-rs-debug`
task, a sandbox-scoped CLAUDE.md, and expands the README dev section
to cover the host/sandbox CLI naming split.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
You are running in an isolated sandbox/execution-environment specialized for software development. This environment has access to a few specialized tools to help you accomplish your goals.
5
+
These tools are all subcommands of the `min` command.
6
+
7
+
You will NOT be able to mutate the _host_ system with `apt-get`, `sudo pip install` etc, however you
8
+
will be able to install additional commands using the `min add <packages>` command.
9
+
10
+
## Adding packages: `min add <package name>`
11
+
12
+
This command installs the package with the given name into your environment, letting you use the CLI tools or libraries it encapsulates.
13
+
14
+
Without any flags, `min add` installs the given package for this session only. If you are sure that it will
15
+
always be needed as a build-time (i.e. tools needed during compilation) or runtime dependency (i.e. dynamic
16
+
libraries), you can add `--build` or `--runtime` to the invocation to depend on the package permanently.
17
+
18
+
Help string for `min add`: min add [--session|--build|--runtime|--task <taskname>] <packages>
19
+
20
+
Examples:
21
+
22
+
* The `curl` utility is needed: `min add curl`
23
+
* This project links against openssl: `min add --runtime openssl`
24
+
* This project has a build step requiring the protobuf compiler: `min add --build openssl`
25
+
26
+
## Finding packages: `min search <search term>`
27
+
28
+
Performs a text search across all available packages, printing packages that match or partially match the given term. Use this to find the exact names of packages you need.
29
+
30
+
## Running tasks: `min run <task name>`
31
+
32
+
This command runs the specified task (declared in this project's `minimal.toml`) in a separate Minimal execution environment, streaming back the output.
Copy file name to clipboardExpand all lines: README.md
+29-3Lines changed: 29 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,8 @@ To compile a slim binary without the TUI:
68
68
69
69
## Building
70
70
71
+
From the host:
72
+
71
73
minimal run build
72
74
73
75
The release binary lands at `target/release/fastrs`. Or run directly:
@@ -76,15 +78,39 @@ The release binary lands at `target/release/fastrs`. Or run directly:
76
78
77
79
## Development
78
80
79
-
`minimal.toml` defines tasks that run inside the [Minimal](https://minimal.dev) sandbox with the toolchain pinned:
81
+
This project is set up to build and run inside the [Minimal](https://minimal.dev) sandbox — the toolchain (`rust`, `gcc`, `binutils`, …) is pinned in `minimal.toml`, so no host install is required beyond the `minimal` CLI.
82
+
83
+
> **CLI naming:** on the host the binary is `minimal`. Once you're inside a sandbox (e.g. via `minimal run dev`) the same tool is exposed as `min`. The examples below use whichever name matches the context.
84
+
85
+
Tasks are defined in `minimal.toml`. From the host:
80
86
81
-
minimal run dev # interactive tmux session (Claude + shell)
87
+
minimal run dev # interactive zellij dev session (Claude pane + shell pane)
88
+
minimal run build # cargo build --release
89
+
minimal run run # cargo run --release
90
+
minimal run fast-rs-debug # cargo run --release with RUST_LOG=debug
82
91
minimal run test # unit tests
83
92
minimal run test-live # also run the live integration test against fast.com
84
93
minimal run lint # cargo clippy --all-targets -- -D warnings
85
94
minimal run fmt # cargo fmt
86
95
87
-
Without Minimal, the equivalent cargo commands (`cargo build --release`, `cargo test`, `cargo clippy --all-targets -- -D warnings`, `cargo fmt`) work too.
96
+
From inside the sandbox shell, drop the `imal`:
97
+
98
+
min run test
99
+
min run lint
100
+
# etc.
101
+
102
+
### `minimal run dev`
103
+
104
+
Launches a [zellij](https://zellij.dev) layout (`zellij.kdl`) via `scripts/setup-dev.sh` with two panes:
105
+
106
+
-**left** — Claude Code (`claude --dangerously-skip-permissions`, only safe because the sandbox is ephemeral).
107
+
-**right** — a bash shell that first runs `scripts/dev-shell.sh` (a quick cheat sheet of available `min run <task>` shortcuts) and then drops you into an interactive prompt.
108
+
109
+
The session is named `dev` and is reset on each invocation.
110
+
111
+
### Without Minimal
112
+
113
+
The equivalent cargo commands (`cargo build --release`, `cargo test`, `cargo clippy --all-targets -- -D warnings`, `cargo fmt`) work too.
88
114
89
115
CI runs `cargo test --lib`, `cargo fmt --check`, and `cargo clippy --all-targets -- -D warnings` on Linux/macOS/Windows. Tagged pushes (`v*`) build cross-platform release archives via `.github/workflows/release.yml`.
0 commit comments