Getting Started
Volt is a native text editor built in Rust. Customization lives in a compiled user library (volt-user) under the user/ directory — plugins, languages, themes, and keybindings are Rust modules that compile into user.dll / libuser.so / libuser.dylib.
This page gets you running. For the workflows people usually ask help about next, jump to:
- How to build the user package
- How to create a new user plugin
- I scaffolded a plugin — what next?
- How to edit a builtin plugin
Prerequisites
- Rust stable via rustup
- A C/C++ toolchain for native dependencies
- SDL3 development libraries for the editor shell
Clone and build
bash
git clone https://github.com/samwdp/volt.git
cd volt
cargo build -p volt -p volt-userDebug binaries:
| Artifact | Path |
|---|---|
| Editor | target/debug/volt (volt.exe on Windows) |
| User library | target/debug/user.dll / libuser.so / libuser.dylib |
Release:
bash
cargo build -p volt -p volt-user --releaseFirst launch
bash
cargo run -p voltPress F1 (or run help) to ask a docs question; Volt opens search in a browser split. See Help Plugin.
Smoke-test without an interactive window:
bash
cargo run -p volt -- --shell-hiddenList registered packages (useful after adding a plugin):
bash
cargo run -p volt -- --bootstrap-demoWhere customization lives
| Path | Purpose |
|---|---|
user/*.rs | Builtin and custom plugin modules |
user/lib.rs | Package registry (packages()) |
user/lang/ | Language packages |
user/config.yaml + user/config/ | Runtime YAML (often no rebuild) |
user/themes/ | Themes and shared UI options |
user/sdk/ | Stable plugin ABI (editor-plugin-api) |
Most help queries fall into one of two buckets:
- Rebuild required — Rust package metadata (commands, hooks, keybindings, buffers)
- Hot reload — YAML under
user/config/and theme TOML underuser/themes/
See Configuration and Build the user package.
Next steps
- Read User packages overview
- Learn the core concepts
- Either create a plugin or edit a builtin