Skip to content

Commit 1a8581c

Browse files
committed
Update README.md with enhanced structure, branding, and detailed feature breakdown
- Added logo and centralized headers for branding and readability. - Expanded key sections: Quick Start, Security Model, and Observability. - Reorganized and clarified example workflows and usage instructions. - Replaced outdated content with updated features, links, and commands. - Added declarative spec examples for YAML integration.
1 parent d0400e3 commit 1a8581c

File tree

2 files changed

+67
-43
lines changed

2 files changed

+67
-43
lines changed

README.md

Lines changed: 67 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,43 @@
1-
# void-box
1+
<div align="center">
2+
<img src="assets/logo/void-box.png" alt="void-box" width="200">
3+
<h1>void-box</h1>
4+
<p><strong>Composable agent runtime with hardware isolation</strong></p>
5+
<p><code>VoidBox = Agent(Skills) + Environment</code></p>
26

3-
**Composable agent runtime with hardware isolation**
7+
<a href="https://github.com/the-void-ia/void-box/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/the-void-ia/void-box/ci.yml?branch=main&style=flat-square&label=CI" alt="CI"></a>
8+
<a href="https://github.com/the-void-ia/void-box/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
9+
<img src="https://img.shields.io/badge/rust-1.83%2B-orange?style=flat-square&logo=rust" alt="Rust 1.83+">
10+
</div>
411

5-
> A skill is a declared capability. A capability doesn't exist until it has an isolated boundary.
6-
>
7-
> `VoidBox = Agent(Skills) + Environment`
12+
<br>
813

9-
## Status
14+
<p align="center">
15+
<a href="docs/architecture.md">Architecture</a> ·
16+
<a href="#quick-start">Getting Started</a> ·
17+
<a href="#observability">Observability</a>
18+
</p>
1019

11-
v0 -- functional, tested (158+ tests), KVM + Ollama E2E verified. API is unstable.
20+
> [!NOTE]
21+
> **v0 preview** — Functional, 222+ tests passing, KVM + Ollama E2E verified. API may change.
1222
13-
## Why void-box
23+
## What You Get
1424

15-
- **Hardware isolation** -- KVM micro-VMs, not containers. Each agent runs in a fresh, disposable VM with its own kernel.
16-
- **Skills as first-class artifacts** -- Procedural knowledge (SKILL.md), MCP servers, CLI tools, and reasoning engines are declared and provisioned into the sandbox.
17-
- **Composable pipelines** -- Sequential `.pipe()`, parallel `.fan_out()`, and streaming output. Each stage boots a clean VM.
18-
- **Observability-first** -- OTLP traces and metrics, structured logs with trace correlation, guest telemetry via procfs.
25+
- **Hardware isolation** — KVM micro-VMs, not containers. Fresh VM per agent.
26+
- **Skill-native** — Procedural knowledge (SKILL.md), MCP servers, CLI tools. Compatible with [skills.sh](https://skills.sh) ecosystem.
27+
- **Composable pipelines** — Sequential `.pipe()`, parallel `.fan_out()`, streaming output.
28+
- **Multi-LLM** — Claude, Ollama, or any OpenAI-compatible endpoint. Per-box model selection.
29+
- **Observability built-in** — OTLP traces/metrics, structured logs, guest telemetry via procfs.
30+
- **No root required** — Usermode SLIRP networking via smoltcp, no TAP devices.
1931

20-
## Quick Start -- Rust Library
32+
## Quick Start
33+
34+
### 1. Add dependency
35+
36+
```bash
37+
cargo add void-box
38+
```
39+
40+
### 2. Define skills and build a VoidBox
2141

2242
```rust
2343
use void_box::agent_box::VoidBox;
@@ -40,12 +60,16 @@ let researcher = VoidBox::new("hn_researcher")
4060
.network(true)
4161
.prompt("Analyze top HN stories for AI engineering trends")
4262
.build()?;
63+
```
64+
65+
### 3. Run
4366

67+
```rust
4468
let result = researcher.run(None).await?;
4569
println!("{}", result.claude_result.result_text);
4670
```
4771

48-
## Quick Start -- Spec File
72+
## Declarative Spec
4973

5074
```yaml
5175
api_version: v1
@@ -117,12 +141,12 @@ See [docs/architecture.md](docs/architecture.md) for the full component diagram,
117141

118142
## Security Model
119143

120-
- **Session secret** -- 32-byte random token (getrandom), injected via kernel cmdline, required for all vsock messages
121-
- **Seccomp-BPF** -- Restricts VMM thread to minimum syscalls for KVM operation
122-
- **Command allowlist** -- Guest-agent only executes approved binaries
123-
- **Resource limits** -- setrlimit on guest processes (memory, open files, processes, file size)
124-
- **SLIRP rate limiting** -- Max concurrent connections, CIDR deny list
125-
- **No root required** -- Usermode networking via smoltcp, no TAP devices
144+
- **Session secret** 32-byte random token (getrandom), injected via kernel cmdline, required for all vsock messages
145+
- **Seccomp-BPF** Restricts VMM thread to minimum syscalls for KVM operation
146+
- **Command allowlist** Guest-agent only executes approved binaries
147+
- **Resource limits** setrlimit on guest processes (memory, open files, processes, file size)
148+
- **SLIRP rate limiting** Max concurrent connections, CIDR deny list
149+
- **No root required** Usermode networking via smoltcp, no TAP devices
126150

127151
## LLM Providers
128152

@@ -134,10 +158,10 @@ See [docs/architecture.md](docs/architecture.md) for the full component diagram,
134158

135159
## Observability
136160

137-
- **OTLP traces** -- Per-box spans, tool call events, pipeline-level trace
138-
- **Metrics** -- Token counts, cost, duration per stage
139-
- **Structured logs** -- `[vm:NAME]` prefixed, trace-correlated
140-
- **Guest telemetry** -- procfs metrics (CPU, memory) exported to host via vsock
161+
- **OTLP traces** Per-box spans, tool call events, pipeline-level trace
162+
- **Metrics** Token counts, cost, duration per stage
163+
- **Structured logs** `[vm:NAME]` prefixed, trace-correlated
164+
- **Guest telemetry** procfs metrics (CPU, memory) exported to host via vsock
141165

142166
Enable with `--features opentelemetry` and set `VOIDBOX_OTLP_ENDPOINT`.
143167

@@ -160,7 +184,20 @@ void-box-protocol/ Wire format types (host ↔ guest)
160184
claudio/ Mock claude-code for testing
161185
```
162186

163-
## Running
187+
## Examples
188+
189+
| Example | Description |
190+
|---|---|
191+
| `quick_demo` | Two-stage analyst/strategist pipeline |
192+
| `trading_pipeline` | Four-stage sequential financial pipeline with local skills |
193+
| `parallel_pipeline` | Diamond topology with `fan_out`, per-box models, streaming |
194+
| `ollama_local` | Single box with local Ollama model |
195+
| `remote_skills` | Pulls skills from skills.sh repositories |
196+
| `claude_workflow` | Workflow plan/apply pattern |
197+
| `claude_in_voidbox_example` | Interactive Claude session in sandbox |
198+
| `boot_diag` | VM boot diagnostics |
199+
200+
## Running & Testing
164201

165202
### Mock mode (no KVM required)
166203

@@ -200,20 +237,7 @@ VOID_BOX_INITRAMFS=/tmp/void-box-rootfs.cpio.gz \
200237
cargo run --example parallel_pipeline
201238
```
202239

203-
## Examples
204-
205-
| Example | Description |
206-
|---|---|
207-
| `quick_demo` | Two-stage analyst/strategist pipeline |
208-
| `trading_pipeline` | Four-stage sequential financial pipeline with local skills |
209-
| `parallel_pipeline` | Diamond topology with `fan_out`, per-box models, streaming |
210-
| `ollama_local` | Single box with local Ollama model |
211-
| `remote_skills` | Pulls skills from skills.sh repositories |
212-
| `claude_workflow` | Workflow plan/apply pattern |
213-
| `claude_in_voidbox_example` | Interactive Claude session in sandbox |
214-
| `boot_diag` | VM boot diagnostics |
215-
216-
## Testing
240+
### Tests
217241

218242
```bash
219243
cargo test --lib # Unit tests
@@ -229,12 +253,12 @@ cargo test --test e2e_skill_pipeline -- --ignored --test-threads=1
229253

230254
## Troubleshooting
231255

232-
**`/dev/kvm` permission denied** -- Add your user to the `kvm` group and re-login.
256+
**`/dev/kvm` permission denied** Add your user to the `kvm` group and re-login.
233257

234-
**`Not logged in`** -- Use `OLLAMA_MODEL=...` for local inference or set `ANTHROPIC_API_KEY`.
258+
**`Not logged in`** Use `OLLAMA_MODEL=...` for local inference or set `ANTHROPIC_API_KEY`.
235259

236-
**Parallel stages timeout** -- Use the same Ollama model for all parallel boxes, or increase `STAGE_TIMEOUT_SECS=600`.
260+
**Parallel stages timeout** Use the same Ollama model for all parallel boxes, or increase `STAGE_TIMEOUT_SECS=600`.
237261

238262
## License
239263

240-
Apache-2.0
264+
Apache-2.0 · [The Void Platform](https://github.com/the-void-ia)

assets/logo/void-box.png

858 KB
Loading

0 commit comments

Comments
 (0)