Skip to content
Open
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
1 change: 1 addition & 0 deletions Cargo.lock

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

37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,49 @@ and recursive-language-model harness experiments.
For the coding-agent setup commands, see
[docs/coding-agent-harnesses.md](./docs/coding-agent-harnesses.md).

## Exoclaw Long-Running Harness

Exoclaw is the TypeScript harness example for long-running local agents. It uses
the same TypeScript runner path as the minimal harness, but opts into scheduled
task tools and scheduler-aware sandbox policy.

Start a local Exoclaw REPL with:

```bash
scripts/exoclaw-repl
```

Scheduled tasks can be created, listed, cancelled, and deleted by the agent. The
corresponding CLI commands are under:

```bash
./target/debug/exo --harness exoclaw schedule --help
```

By default, Exoclaw uses an agent-scoped sandbox for shell commands and scheduled
tasks, so setup done through the REPL is shared by future tasks and conversations
for that agent while the warm sandbox is alive, including across normal REPL
restarts. Conversation-scoped and task-scoped sandboxes are available for
isolation. The sandbox filesystem is not yet durable across warm container
cleanup; use a prepared image or task `setupCommand` for dependencies that must
survive host/container cleanup.

To make a conversation use its own sandbox for shell commands instead of the
agent sandbox, create or update it with `--sandbox-scope conversation`:

```bash
./target/debug/exo --harness exoclaw conversation create exoclaw-agent "Isolated Dev" --sandbox-scope conversation
scripts/exoclaw-repl --conversation isolated-dev --sandbox-scope conversation
```

## Repository Layout

- `crates`: Rust workspace for the CLI, exoharness substrate, and executors.
- `typescript`: TypeScript harness runtime, model-runtime helpers, and
adapter-specific support code.
- `examples/typescript`: runnable TypeScript harness examples.
- `examples/exoclaw`: long-running TypeScript harness example with scheduled
task support.
- `containers`: sandbox images used by the coding-agent harness examples.
- `spec`: core architecture and terminology.
- `docs`: design notes for in-progress directions.
Expand Down
1 change: 1 addition & 0 deletions crates/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ clap.workspace = true
executor = { path = "../executor" }
lingua.workspace = true
rustyline = "15.0.0"
serde.workspace = true
serde_json.workspace = true
tokio.workspace = true
tokio-stream.workspace = true
Expand Down
Loading