vimit is a safe VibeMode quota monitor for Codex/Droid workflows. It's a native Rust CLI tool designed to help Vibe coders track whether they're approaching VibeMode limits and can safely continue their sessions.
The project is well-structured with clear separation between core functionality (lib.rs), CLI parsing (args.rs), configuration management (config.rs, accounts.rs), and user interface modules (output.rs, monitor.rs, notify.rs).
-
Robust Error Handling
- Comprehensive error messages with actionable hints throughout the codebase
- Consistent Result<Vec, String> patterns
- Graceful fallback to cached data on network failures
-
Extensive Testing
- Unit tests covering core functionality (see src/lib.rs:1051-1173)
- CLI argument parsing tests (src/cli/args.rs:309-410)
- Configuration tests in all major modules
- Integration tests for monitor output and rendering
-
Feature-Rich Implementation
- Multiple output modes: human, JSON (
--json), compact (--compact) - Live TUI monitor with 12 color themes (including accessibility-optimized ones)
- Multi-account support via
accounts.toml - 30-day trend tracking with redb persistence
- Desktop notifications with escalation tracking
- Demo and mock modes for testing
- Multiple output modes: human, JSON (
-
Architecture
- Clear module separation:
src/ lib.rs # Core data structures and API logic main.rs # Main CLI entry point cli/ # CLI-specific code config.rs args.rs accounts.rs monitor.rs # TUI implementation notify.rs # Desktop notifications output.rs # Text rendering trends.rs # Historical data theme.rs # Color themes init.rs # Interactive setup doctor.rs # System diagnostics bin/vimit-gui.rs # GUI variant (with slint) - Router module for API endpoint failover
- Cache support for offline usage
- Proper config merging with CLI override support
- Clear module separation:
-
Safety Design
- API keys never written to disk
- Keys never logged in error messages
- JSON output omits account identity fields
--with-abtopuses privacy-safe summaries only- No telemetry
-
Documentation
- Comprehensive README.md with usage examples
- README.ru.md for Russian speakers
- ROADMAP.md for feature roadmap
- SECURITY.md for security practices
- SUBMISSION.ru.md for competition entry
- docs/termux.md for Android installation
-
Documentation Gaps
- No markdown files in
docs/directory - Missing examples for Cody, Claude Code, and Cursor integrations
- Limited agent status documentation in README
- Missing
--helptext in monitoring output
- No markdown files in
-
Style and Consistency
- Some line breaks are overly split in lib.rs
- Error message formatting could be more consistent
-
Release Management
- Limited automated release scripts
- Missing Windows uninstall script (per ROADMAP.md)
-
Error Message Consistency
- Some error messages duplicate similar logic across files
- Slightly inconsistent formatting in hint messages
-
Potential Improvements
- Add support for termux:widget examples (per ROADMAP.md)
- Implement optional reset/recovery notices in notifications
- Add per-window threshold documentation
- Include more compact monitor presets
[dependencies]
chrono = "0.4"
ratatui = { version = "0.28", default-features = false, features = ["crossterm"] }
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
redb = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
slint = { version = "1.16.1", optional = true, default-features = false, features = ["std", "backend-winit", "renderer-software", "compat-1-2"] }
toml = "0.8"
rand = "0.9"Monitoring (--monitor)
- Uses ratatui for terminal UI
- Includes gauges, sparklines, color coding
- Supports three presets:
full(2-column grid),compact(single-column),mini(one-liner) - 12 color themes including accessibility variants
API Integration
- Robust endpoint failover with router logic
- Supports multiple API bases: r-api.vibemod.pro, api.vibemod.pro, custom
- Retry logic with exponential backoff and jitter
- Rate limited error handling (HTTP 429)
Multi-Account Support
accounts.tomlprofiles- Tab switching in TUI
- Dropdown in GUI variant
Configuration
config.tomlwith defaults- Merged with CLI arguments (CLI overrides config)
- Supports
.envfile lookup - Environment variable priority: CLI > environment > .env
The project includes comprehensive unit tests covering:
- API integration
- Configuration parsing
- CLI argument validation
- Monitor rendering
- Notification logic
- Theme management
✅ Safety Measures Implemented
- API keys stored only in environment variables or
.envfiles - Keys never written to disk
- No key logging in error messages
- JSON output excludes account identity
.envfiles are gitignored- Demo and mock modes work without keys
- Only network call is
GET https://api.vibemod.pro/v1/me
- Native Rust CLI without Python/pip/venv
- VibeMode
/v1/mepolling with robust schema tolerance - 5h / 24h / 7d / 30d credit and request windows
- Human, JSON, and compact output modes
- Full-screen ratatui monitor with gauges, sparklines
- Three monitor presets
- 12 color themes including accessibility-optimized
- Per-window thresholds
.envfile support- Desktop notifications
- Multiple account support
- Demo/mock modes
- Diagnostics (
--doctor) - Setup wizard (
--init) - 30-day trends (
--trend) - Integration with abtop
- CI and release workflows
- PowerShell install/uninstall scripts (mentioned in ROADMAP.md)
- Termux prebuilt binary
- Improved notification system (reset/recovery notices)
- More compact presets for Droid widgets
- Better API schema tolerance for new VibeMode updates
- Termux:API support
- Termux:Widget examples
git clone https://github.com/xodapi/vimit.git
cd vimit
cargo build --release
cargo run --release -- --demoAvailable from releases: https://github.com/xodapi/vimit/releases
pkg install rust binutils
cargo install --path .
# Or build manually and copy to ~/.local/bin/vimit --init # Interactive setup creates config.toml, .env, accounts.toml
vimit --demo # Try without API key
vimit # Use with VIBEMODE_API_KEY (env var or .env file)
vimit --compact # Widget-friendly output
vimit --json # Machine-readable output
vimit --monitor # Full-screen live dashboardvimit is a well-crafted, production-ready tool that demonstrates:
- Excellent Rust coding practices
- Careful security design
- Comprehensive testing
- User-friendly interfaces (CLI, TUI, optional GUI)
- Robust error handling and fallback mechanisms
The project successfully addresses a real need in the VibeMode ecosystem by providing local-first quota monitoring without compromising on privacy or security. The only significant area for improvement is the internal documentation within code modules.
For future improvements, consider:
- Documentation: Ensure all CLI args have help text
- Testing: Add integration tests for full workflows
- Release: Create PowerShell installer scripts per roadmap
- Android: Release prebuilt binary for Termux
- Monitoring: Add more compact monitor presets
The code is ready for production use and follows Rust best practices throughout.