vc-operator is the standalone desktop/operator workspace for Vibecrafted.
It carries the terminal cockpit, MCP multiplexer, tray agent, and macOS shell
wrapper as one Rust-first product surface.
The root Cargo.toml is a workspace, not an application crate:
| Path | Package | Role |
|---|---|---|
mux-agent/ |
rust-mux |
MCP transport multiplexer and daemon supervisor |
tui-agent/ |
vibecrafted-operator |
terminal operator cockpit |
tray-agent/ |
tray-agent |
menu bar/tray control surface |
shell-agent/ffi/ |
vibecrafted-shell-ffi |
Rust/UniFFI bridge for the macOS app |
shell-agent/uniffi-bindgen/ |
vibecrafted-uniffi-bindgen |
local binding generator wrapper |
The old root-level TUI crate was intentionally removed after extraction. The
single source of truth for the operator console is now tui-agent/.
Use the root Makefile:
make gates
cargo check --workspace
cargo check --workspace --all-features
cargo check --workspace --no-default-featuresmake gates runs:
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
The root app targets delegate to shell-agent/:
make app
make dmg
make dmg-signedmake app generates UniFFI bindings, regenerates the Xcode project through
xcodegen, builds Vibecrafted.app, and embeds the Rust helper binaries:
vc-mux-daemonvc-mux-trayvc-operator-tui
make dmg creates an unsigned local DMG. make dmg-signed requires a
Developer ID Application signing identity in the local keychain and prints the
notarization commands after a signed DMG is created.
The TUI reads the shared local control-plane state:
$VIBECRAFTED_HOME/control_plane/
runs/*.json
events.jsonl
The mux status panel reads rust-mux JSON status snapshots, preferring
VIBECRAFTED_MUX_STATUS_PATHS before defaulting to
~/.rmcp_servers/rust_mux/status.json and sibling JSON files.
This repo is a living tree. Do not commit build products, .loctree snapshots,
.DS_Store, Xcode DerivedData, generated daily artifact symlinks, or nested
source-repo CI baggage. Keep Cargo.lock tracked: this is an application and
release workspace, not only a library crate.