A local sandbox for testing Talon scripts. Inspired by playwright-cli.
Project description
talonbox
A local sandbox for testing Talon scripts. Inspired by playwright-cli.
talonbox is an independent, community-driven sandbox for Talon Voice development. It gives humans and coding agents a safer place to stage Talon changes inside a local Lume VM before touching the host machine.
Installation
Install with uv:
uv tool install talonbox
You can also install it with pip or pipx:
pip install talonbox
pipx install talonbox
Usage
talonbox provides a small set of primitives for testing Talon scripts in a VM-backed sandbox.
For top-level help, run:
talonbox --help
Typical workflow:
talonbox start
talonbox rsync -av ~/.talon/user/ guest:/Users/lume/.talon/user/
talonbox mimic "focus chrome"
talonbox screenshot /tmp/talon.png
talonbox stop
For a first-pass diagnostic when the setup seems broken, run:
talonbox smoke-test
smoke-test is a mutating end-to-end sanity check. It may stop a running VM, pushes a temporary Talon command bundle, runs mimic, captures a screenshot, keeps debugging artifacts under /tmp, and leaves the VM stopped when it finishes.
General guest access:
talonbox exec -- whoami
talonbox scp guest:/tmp/out.png /tmp/out.png
printf 'print(1 + 1)\n' | talonbox repl
Host-side outputs from rsync, scp, and screenshot are intentionally restricted to /tmp.
This is a caller-facing safety guarantee: invoking talonbox must not let humans or coding agents cause arbitrary host writes outside /tmp.
On macOS, /tmp may resolve to /private/tmp; that canonical temp root is still allowed, but symlink escapes rooted under it are rejected.
For rsync and scp, talonbox keeps the explicit guest:/... transfer rules and runs the underlying transfer process inside the macOS sandbox, so extra host-side writes outside that boundary fail with an obvious permission error instead of relying on a large flag denylist.
You can also run:
python -m talonbox --help
Security Principles
These principles are meant to keep Talon experimentation contained and predictable, especially when talonbox is driven by coding agents:
- No caller-triggered writes to host files outside
/tmp. Atalonboxcommand should not let its caller cause arbitrary host writes beyond that boundary. - No symlink escapes through
/tmp; a symlink placed under/tmpshould not be able to redirect writes outside the allowed boundary. - On macOS, treat
/private/tmpas the canonical form of the same allowed temp root, not as a separate exception. - Prefer explicit guest/host boundaries. Remote paths must be written as
guest:/...so transfers stay easy to audit. - Favor VM-local execution first. Talon code should run in the guest and only copy explicit outputs back to the host.
Development
To contribute to this tool, use uv. The following command will establish the venv and run tests:
uv run pytest
To run talonbox locally, use:
uv run talonbox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file talonbox-0.1.0rc1.tar.gz.
File metadata
- Download URL: talonbox-0.1.0rc1.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0605f2d906f8147391e7a7173bf6a4b9999b6b6912968cbafb55e5d876a7e54
|
|
| MD5 |
d396215f160845f93e31a1a76a5f3f97
|
|
| BLAKE2b-256 |
836ecf2dcaeb22fadc38b4048140944de4dc29585f1aff7c5ea45948335ad6f9
|
File details
Details for the file talonbox-0.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: talonbox-0.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e60ec494f632e021ed8e073ef2e4b4686536b400ce25d6c91dad6eeb2927f92
|
|
| MD5 |
8c41494c556a3bf06c71a10c04a96f00
|
|
| BLAKE2b-256 |
9e89c37f3d98c597c6df7569faeb4e03aad5b4d46f74d93478750386ffcd4332
|