cargUI - The Complete Rust Development Interface for VS Code
A comprehensive VS Code extension that transforms your Rust development workflow. cargUI provides a unified visual interface for Cargo, Rustup, project organization, and code analysis—all accessible from your sidebar.

🎯 What is cargUI?
cargUI started as a simple GUI for Cargo commands, but has evolved into a complete Rust development companion covering:
- 🎨 Project Organization - Smart detection, module visualization, target management
- ⚙️ Cargo Integration - Visual interface for all Cargo commands and features
- 🦀 Rust Toolchain - Rustup integration and toolchain management
- 📦 Workspace Support - Intelligent multi-crate workspace handling
- 🔍 Code Intelligence - Module health indicators, dependency tracking
- 📸 Configuration - Snapshots for different development scenarios
Why cargUI?
Stop typing terminal commands. Start working visually:
✅ Click to build, run, test with precise configurations
✅ See project structure, modules, targets, and dependencies
✅ Detect unregistered files and missing declarations automatically
✅ Switch between development scenarios with snapshots
✅ Track dependency versions and module health in real-time
✅ Manage Rust toolchains without memorizing rustup commands
🚀 Quick Start
- Install the extension from VS Code Marketplace
- Open any Rust project with
Cargo.toml
- Find the Cargo tree view in your Explorer sidebar
- Check a target → Click Build/Run/Test
Example: Check "main" + "serde" feature → Click Run
→ cargo run --bin main --features serde
✨ Feature Overview
🏗️ Project Organization & Intelligence
Smart Detection System - Auto-discover unregistered targets and missing features
Automatically finds:
- Unregistered
.rs
files anywhere in src/
#[cfg(feature = "...")]
attributes not declared in [features]
- Files that should be binaries, examples, tests, or benchmarks
Smart filtering:
- Skips helper modules (checks for
mod
, use
, include!
statements)
- Only shows truly orphaned files
- No false positives from utility code
Interactive workflow:
- Detection runs automatically (or via command palette)
- Classify each unknown file: Binary? Example? Test? Benchmark?
- Choose to move files to conventional directories
- One-click Cargo.toml update
File organization:
Target Type |
Conventional Directory |
Auto-Move Option |
Binary |
src/bin/ |
✅ Yes |
Example |
examples/ |
✅ Yes |
Test |
tests/ |
✅ Yes |
Benchmark |
benches/ |
✅ Yes |
Follows Rust best practices automatically!
Module Visualization - See your entire module tree with health indicators
Color-coded modules:
🟢 Green - Well-maintained public API (documented + public)
🔵 Blue - Public modules (part of your API)
🟡 Yellow - Missing documentation
🟠 Orange - Undeclared modules (not in mod
statements)
⚪ Default - Private internal modules with docs
Module information:
- Visibility (
pub mod
vs private)
- Documentation status (
///
or //!
comments)
- Test presence (
#[test]
, #[cfg(test)]
)
- Directory vs single-file modules
- Hierarchical structure
Click any module to open the file instantly!
Dependency Management - Track versions and update status
Version tracking:
- 🟢 Green = Latest version (up to date!)
- 🟡 Yellow = Update available
- 🔵 Blue = Workspace dependency
- 🟠 Orange = Git/path dependency
Organized by type:
- Production - Runtime dependencies
- Dev - Development/testing dependencies
- Build - Build script dependencies
- Workspace - Shared workspace dependencies
Real-time crates.io integration - Shows latest available versions automatically
⚙️ Cargo Command Integration
Target System - Visual management of all buildable targets
Auto-discovers:
src/main.rs
- Main binary
src/bin/*.rs
- Additional binaries
examples/*.rs
- Example programs
tests/*.rs
- Integration tests
benches/*.rs
- Benchmarks
Color-coded health:
🔵 Blue - Custom location (non-standard path)
🟠 Orange - Incorrect declaration (name/path mismatch)
🔴 Red - Unknown path or unregistered
Features:
- Multi-select for batch builds
- Drag & drop to reclassify unknown targets
- One-click run/build/test
- "Toggle All" for quick selection
Feature Flags - Visual feature management
Parses [features]
from Cargo.toml:
[features]
default = ["json"]
json = ["serde_json"]
async = ["tokio"]
database = ["sqlx"]
Usage:
- Check features to enable
- Combine multiple features
- See feature dependencies
- Toggle all on/off
Commands use your selections:
cargo build --features json,async,database
cargo test --features json
Build Modes - Debug/Release toggle
Click "Mode: Debug" to switch to Release:
- Adds
--release
to all commands
- Affects build, run, test, bench, doc
Note: Resets to Debug on VS Code restart. Use snapshots to preserve release configurations!
Snapshots - Save complete build configurations
A snapshot stores:
- Build mode (debug/release)
- Checked targets
- Checked features
- Arguments and environment variables
- Workspace context
Auto-created snapshots:
- Binary projects → "main" snapshot
- Library projects → "lib" snapshot
- Workspace projects → One per member
Workflow:
- Configure UI (targets, features, mode)
- Click [+] in SNAPSHOTS
- Name it: "dev", "production", "testing"
- Click to apply/deactivate
Use cases:
dev
→ debug, all features, verbose
production
→ release, minimal features
testing
→ test targets, fixtures enabled
frontend-dev
→ specific workspace members
Watch Mode - Auto-recompile on file changes
Requires: cargo-watch
(extension offers to install)
Watch actions:
- check - Fast compilation check (recommended)
- build - Full build on changes
- run - Run binary on changes (for servers)
- test - Run tests on changes
- clippy - Lint on changes
Usage:
- Click "Watch: Inactive"
- Select action
- Edit any
.rs
file
- Auto-runs:
cargo watch -x check
Respects all your settings (features, env vars, etc.)!
Rust Edition Selector - Manage your Rust edition
Features:
- Shows current edition from
Cargo.toml
(e.g., "Edition: 2021")
- Click to change edition with a dropdown menu
- Automatically fetches available editions from the official Rust Edition Guide
- Future-proof: New editions appear automatically when documented by the Rust team
- Updates
Cargo.toml
while preserving file formatting
How it works:
- Fetches edition list from
https://github.com/rust-lang/edition-guide
- Parses the official documentation to find all available editions
- Falls back to known editions (2015, 2018, 2021, 2024) if offline
How to Use:
- View current edition at the top of the tree
- Click "Edition: 2021" to open selector
- Choose a new edition from the dropdown
Cargo.toml
updates automatically ✅
Rustup Integration - Manage toolchains visually
Status bar shows:
- Current toolchain (stable/beta/nightly)
- Version number
- Click for details
No more memorizing rustup commands!
- See toolchain info at a glance
- Check for updates visually
- Switch toolchains from UI
📦 Workspace Support
Multi-Crate Workspaces - Full support for complex projects
Detects workspace structure:
[workspace]
members = ["cli", "api", "core", "utils"]
Two selection modes:
Label Click (Context Selection):
- Click package name → Sets as active context
- Tree updates to show that package's targets/features
- Use when focusing on one crate
Checkbox Click (Build Selection):
- Check packages → Include in build
- Multi-select for combined builds
- Use for building multiple crates
Special "All Members":
- Click →
cargo build --workspace
(builds everything)
- Check → Same as checking all individually
Commands:
# Context: core, Checked: core only
cargo build --package core
# Context: api, Checked: api + core
cargo build --package api --package core
# All Members selected
cargo build --workspace
Workspace snapshots remember your context and selections!
🛠️ Additional Features
Arguments - Program arguments (after --
)
Add reusable arguments:
--verbose
--port 8080
--config dev.toml
Check to enable:
cargo run --bin server -- --verbose --port 8080
Defaults included, add your own via [+] button
Environment Variables - Set env vars for cargo commands
Common variables:
RUST_BACKTRACE=1
- Stack traces
RUST_LOG=debug
- Logging level
DATABASE_URL=...
- Test database
Commands:
RUST_BACKTRACE=1 RUST_LOG=debug cargo run
Custom Commands - Save frequently-used cargo commands
Default commands:
cargo clippy
- Lint
cargo search <crate>
- Search crates
cargo add <crate>
- Add dependency
cargo tree
- Dependency tree
cargo update
- Update dependencies
Add your own:
cargo build --target x86_64-unknown-linux-gnu
cargo test --nocapture
cargo doc --document-private-items --open
Click to execute in terminal!
⌨️ Keyboard Shortcuts
macOS
Cmd+K Alt+1
- Run
Cmd+K Alt+2
- Build
Cmd+K Alt+3
- Check
Cmd+K Alt+4
- Test
Cmd+K Alt+5
- Format (rustfmt)
Cmd+K Alt+6
- Clean
Cmd+K Alt+7
- Fix (cargo fix)
Cmd+K Alt+8
- Doc
Cmd+K Alt+9
- Update
Cmd+Delete
- Delete selected item
Windows/Linux
Ctrl+K Alt+1-9
- Same as macOS
Ctrl+Delete
- Delete selected item
🎓 Common Workflows
Single Crate Development
1. Check "main" target
2. Enable "database" and "logging" features
3. Set mode to Debug
4. Click Run
5. Save as "dev" snapshot
Result: cargo run --bin main --features database,logging
Multi-Crate Workspace
1. Click "api" label (set context)
2. Check "api" + "shared" checkboxes
3. Enable features
4. Click Build
Result: cargo build --package api --package shared --features ...
Testing with Logging
1. Check test: "integration_tests"
2. Add env var: RUST_LOG=debug
3. Check the env var
4. Click Test
Result: RUST_LOG=debug cargo test --test integration_tests
Watch Mode Development
1. Check your main target
2. Click "Watch: Inactive"
3. Select "check"
4. Edit code → instant feedback!
📦 Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (
Cmd+Shift+X
)
- Search "cargUI"
- Click Install
From Source
git clone https://github.com/xCORViSx/cargUI.git
cd cargUI
npm install
npm run compile
# Press F5 to launch Extension Development Host
🎨 Tree View Structure
📂 Cargo
├── 🔧 Mode: Debug [Click to toggle]
├── ⚡ Watch: Inactive [Click to configure]
├── 🦀 Rust: stable 1.75.0 [Rustup status]
│
├── 📁 WORKSPACE MEMBERS [Multi-crate only]
│ ├── All Members [Click: --workspace]
│ ├── ☑ api ✓ Selected [Label=context | Box=build]
│ └── ☐ core
│
├── 🗂️ MODULES [Code structure]
│ ├── 🟢 auth (pub) [Public, documented]
│ ├── 🔵 api (pub) [Public]
│ ├── 🟡 utils [Missing docs]
│ └── 🟠 helper [Undeclared]
│
├── 📦 DEPENDENCIES [Version tracking]
│ ├── Production
│ │ ├── 🟢 serde 1.0.195 [Latest]
│ │ └── 🟡 tokio 1.35.0 [1.36.0 available]
│ └── Dev
│ └── 🔵 criterion 0.5.1 [Local]
│
├── 📸 SNAPSHOTS (dev) [Active: dev]
│ ├── ★ dev [Bold=active]
│ └── production
│ [+] Create [↻] Reset
│
├── 📦 TARGETS
│ ├── Binaries
│ │ ├── ☑ main
│ │ └── ☐ cli-tool
│ ├── Examples
│ ├── Tests
│ └── ⚠️ Unknowns (2) [Need classification]
│ ├── 🔴 stray_file
│ └── 🔴 old_test
│ [Toggle All]
│
├── ⚙️ FEATURES
│ ├── ☑ json
│ ├── ☐ async
│ └── ☐ database
│ [Toggle All]
│
├── 🔧 ARGUMENTS
│ ├── ☑ --verbose
│ └── ☐ --port 8080
│ [+] Add [↻] Reset
│
├── 🌍 ENVIRONMENT VARIABLES
│ ├── ☑ RUST_BACKTRACE=1
│ └── ☐ RUST_LOG=debug
│ [+] Add [↻] Reset
│
└── 🖥️ CUSTOM COMMANDS
├── Clippy Lint
├── Update All
└── Tree Dependencies
[+] Add [↻] Reset
[Build] [Run] [Test] [Check] [Clean] [Fix] [Fmt] [Doc]
🔧 Configuration
Settings auto-initialize in .vscode/settings.json
:
{
"cargui.arguments": ["--verbose"],
"cargui.environmentVariables": ["RUST_BACKTRACE=1"],
"cargui.snapshots": [
{
"name": "dev",
"mode": "debug",
"targets": ["main"],
"features": ["json", "async"]
}
],
"cargui.customCommands": [
{ "name": "Clippy", "command": "cargo clippy" }
]
}
Persistence:
- ✅ Snapshots persist
- ✅ Active snapshot persists
- ❌ Build mode resets to Debug (use snapshots!)
- ❌ Individual checkboxes don't persist
💡 Tip: Use snapshots as your persistence mechanism!
🐛 Troubleshooting
Q: Extension doesn't appear
A: Open a Rust project with Cargo.toml
Q: Targets not showing
A: Check Cargo.toml
for [[bin]]
, [[example]]
sections
Q: Watch mode fails
A: Install cargo-watch: cargo install cargo-watch
Q: Modules not detected
A: Ensure src/lib.rs
or src/main.rs
exists
Q: Dependencies not updating
A: Refresh the tree view (click refresh icon)
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Development Setup
git clone https://github.com/xCORViSx/cargUI.git
cd cargUI
npm install
npm run watch # Auto-compile
# Press F5 to test
Project Structure
cargUI/
├── src/
│ ├── extension.ts # Main entry point
│ ├── cargoTreeProvider.ts # Tree view provider
│ ├── smartDetection.ts # Smart detection
│ ├── moduleDetection.ts # Module analysis
│ ├── cargoDiscovery.ts # Target discovery
│ ├── cratesIo.ts # Version checking
│ └── ... (15+ focused modules)
├── cargui-demo/ # Test workspace
└── package.json
🚀 Project Status
Version 1.0.0 - Feature Complete!
All planned features have been implemented:
✅ Smart detection for unregistered targets
✅ Module visualization with health indicators
✅ Dependency version tracking
✅ Rustup integration
✅ Rust edition selector
✅ Hierarchical organization (categories/subcategories)
✅ Mixed organization (categorized + uncategorized items)
✅ Click-to-view in Cargo.toml
✅ Inline action buttons
✅ Full workspace support
✅ Watch mode integration
✅ Snapshot system
This extension is now production-ready and feature-complete for comprehensive Rust development workflows.
📝 Release Notes
v1.0.0 - Stable Release (October 2025)
🎉 Feature Complete - Production Ready!
🎨 Project Organization:
- ✅ Smart Detection for unregistered targets and undeclared features
- ✅ Module visualization with color-coded health indicators
- ✅ Dependency version tracking with crates.io integration
- ✅ File organization with auto-move to conventional directories
- ✅ Intelligent module filtering (no false positives)
⚙️ Cargo & Rust:
- ✅ Full workspace support with context switching
- ✅ Rustup integration (toolchain display)
- ✅ Rust edition selector for easy edition management
- ✅ Target color coding for health status
- ✅ Drag & drop target reclassification
- ✅ Auto-created default snapshots
🔧 Improvements:
- ✅ Workspace-aware detection across members
- ✅ One-click Cargo.toml updates
- ✅ Enhanced tooltips with rich information
- ✅ Better icon system (context-aware)
v0.1.0 - Initial Release
- Target discovery and management
- Feature flag toggles
- Snapshots system
- Watch mode integration
- Custom commands
📄 License
MIT License - See LICENSE file
🔗 Links
Made with ❤️ for the Rust community
From simple cargo commands to complete Rust development—all in your sidebar.
Created by: Tradell
Developed by: Claude Sonnet 4.5 thru GitHub Copilot