<p align="center">
<a href="https://github.com/battery-pack-rs/battery-pack"><img src="https://img.shields.io/badge/Battery%20Pack-8B5CF6?style=flat-square&logo=rust" alt="Battery Pack" /></a>
<a href="https://battery-pack-rs.github.io/battery-pack/"><img src="https://img.shields.io/badge/Rust%20Book-000?style=flat-square&logo=rust" alt="Rust Book" /></a>
<a href="https://smallcultfollowing.com/babysteps/blog/2026/07/15/battery-packs/"><img src="https://img.shields.io/badge/Blog-orange?style=flat-square&logo=rust" alt="Blog" /></a>
<a href="https://crates.io/crates/vtcode-battery-pack"><img src="https://img.shields.io/crates/v/vtcode-battery-pack?style=flat-square" alt="crates.io" /></a>
<a href="https://docs.rs/vtcode-battery-pack"><img src="https://img.shields.io/docsrs/vtcode-battery-pack?style=flat-square" alt="docs.rs" /></a>
</p>
# vtcode-battery-pack
Curated [battery pack](https://github.com/battery-pack-rs/battery-pack) of [VT Code](https://github.com/vinhnx/vtcode) crates for building Rust coding agents with OS-native sandboxing, multi-provider LLM support, and extensible skills.
## What's Included
| `config` | `vtcode-config` | Config loader components shared across VT Code |
| `commons` | `vtcode-commons` | Shared traits for paths, telemetry, and error reporting |
| `macros` | `vtcode-macros` | Procedural macros for VT Code |
| `protocols` | `vtcode-acp` | ACP bridge and client implementation for Zed |
| `execution` | `vtcode-bash-runner`, `vtcode-exec-events` | Shell execution sandbox and execution telemetry |
| `state` | `vtcode-session-store` | Session state, durable loop state, and progress tracking |
| `tools` | `vtcode-utility-tool-specs`, `vtcode-indexer` | Tool specs and code indexing/search |
| `eval` | `vtcode-eval` | Agent evaluation framework |
| `auth` | `vtcode-auth` | OAuth and credential storage |
## Quick Start
```sh
cargo bp add vtcode-battery-pack
```
Or pick a subset:
```sh
cargo bp add vtcode-battery-pack --features config,commons,execution
```
Start a new project from the minimal template:
```sh
cargo bp new vtcode-battery-pack --template minimal
```
## Presets
- `default` — execution + state + tools + auth
- `full` — every crate in the pack
## Why not vtcode-core / vtcode-ui?
The currently published `vtcode-core` and `vtcode-ui` versions on crates.io have compilation issues with their `rmcp` dependency. They also depend on internal crates (`vtcode-a2a`, `vtcode-mcp`, `vtcode-llm`, `vtcode-skills`, `vtcode-safety`) that are not published separately. These will be added to the battery pack once they are available and stable on crates.io.
## Resources
- [Battery Pack](https://github.com/battery-pack-rs/battery-pack) — core tooling for creating and managing packs
- [Rust Book](https://battery-pack-rs.github.io/battery-pack/) — guide to battery packs in the Rust ecosystem
- [Blog Post](https://smallcultfollowing.com/babysteps/blog/2026/07/15/battery-packs/) — announcing battery packs for Rust
- [VT Code](https://github.com/vinhnx/vtcode) — the full coding agent application these crates are extracted from
## License
Licensed under either of:
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
at your option.