- Removed the Escalate variant from the Verdict enum and associated parsing logic. - Cleaned up the EditorState struct by removing unused fields and methods. - Simplified MCP connection functions by removing unnecessary disconnect and handle dismiss functions. - Added tick count to MiscState for managing UI updates during processing. - Updated chat and status views to display a spinner during AI processing using the tick count. - Created a README.md file to document the project, its features, architecture, usage, key bindings, agent modes, security measures, installation instructions, and configuration details.
8.2 KiB
8.2 KiB
Zesdex
Autonomous AI coding and security agent running in a terminal-based TUI environment.
Zesdex is a Rust-powered AI assistant that operates directly in your terminal via a rich TUI interface. It combines large language model intelligence with a comprehensive set of tools to explore, understand, and modify codebases autonomously.
Features
- TUI Interface — Full-screen terminal UI with chat panel, input bar, and status bar built with ratatui and crossterm.
- Multi-Agent Modes — Auto (full autonomy), Normal (review risky ops), Plan (no mutations), Yolo (unrestricted).
- Rich Tool System — 20+ built-in tools for file operations, searching, bash execution, git operations, web access, memory management, and workflow orchestration.
- Daemon Architecture — Run as a background daemon with client attach/detach via Unix domain sockets.
- IPC Protocol — Bidirectional state synchronization between daemon and client processes.
- MCP Support — Model Context Protocol integration for connecting to external AI servers.
- Self-Learning — Persistent memory system that stores lessons, references, and project knowledge.
- Workflow Engine — Orchestrate complex multi-step tasks with parallel sub-agents, pipelines, and phased execution.
- Security Guardrails — Catastrophic operation detection, credential exfiltration monitoring, graduated safety checks.
- Security Sidecar — Python-based security analysis daemon for vulnerability scanning.
- Provider Agnostic — Configurable AI model providers with dynamic model selection.
- Session Management — Multiple sessions with history, rewind, and transcript persistence.
Architecture
src/
├── main.rs # Entry point, single/daemon/attach modes
├── app/ # Application core
│ ├── state/ # State management (AppStateRest, types, misc)
│ ├── runtime/ # Action dispatch and event loop
│ ├── mode/ # Agent mode definitions (Auto/Normal/Plan/Yolo)
│ ├── harness.rs # Tool harness for agent execution
│ ├── workflow/ # Workflow engine (script, engine)
│ ├── mcp/ # Model Context Protocol manager
│ ├── sec/ # Security daemon integration
│ ├── subagent/ # Sub-agent orchestration
│ ├── bgbash/ # Background bash job management
│ └── review/ # Self-review quality system
├── controller/ # Input handling and command dispatch
│ ├── input.rs # Key event processing
│ └── command.rs # Slash command parser
├── dto/ # Data transfer objects
│ ├── chat/ # Message types
│ └── provider/ # AI provider request/response types
├── ipc/ # Inter-process communication
│ ├── protocol.rs # Message protocol definition
│ ├── server.rs # Unix socket server
│ ├── client.rs # Unix socket client
│ ├── conn.rs # Connection framing
│ ├── frame.rs # Frame encoding/decoding
│ ├── snapshot.rs # State snapshot
│ └── diff.rs # State diffing
├── model/ # Data models
│ ├── store.rs # File-based storage
│ ├── session.rs # Session management
│ ├── settings.rs # User settings
│ ├── app_config.rs # Provider configuration
│ ├── memory.rs # Persistent memory
│ ├── editlog.rs # Edit history log
│ ├── msglog/ # Message log persistence
│ ├── agent_def/ # Agent definitions
│ └── session_lock.rs # Session locking
├── security/ # Security installation utilities
│ └── install.rs # Sidecar binary management
├── service/ # External service integrations
│ ├── provider.rs # AI provider abstraction
│ └── oauth/ # OAuth authentication
├── tool/ # Tool implementations
│ ├── fs/ # read, write, edit, delete
│ ├── search.rs # grep, glob
│ ├── shell.rs # bash execution
│ ├── bash_tools.rs # bash_output, bash_kill
│ ├── git_operator.rs # git operations
│ ├── git_worktree.rs # git worktree management
│ ├── git_cred.rs # git credential management
│ ├── internet/ # fetch, download, search
│ ├── memory/ # remember, forget, recall
│ ├── plan.rs # plan_enter, plan_ready
│ ├── seqthink.rs # Sequential thinking
│ ├── workflow.rs # workflow_run, note_finding
│ ├── utility/ # cd, dir_list, dir_cache_update, pong, todowrite
│ └── shell_filter/ # Shell output filtering
├── view/ # TUI rendering
│ ├── chat.rs # Chat transcript panel
│ ├── markdown.rs # Markdown rendering
│ ├── status.rs # Status bar
│ ├── theme.rs # Color scheme
│ └── workflow.rs # Workflow visualization
└── resources.rs # Embedded resources (help text, prompts)
Usage
# Run in single-process mode (default)
zesdex
# Run as a background daemon
zesdex --daemon
# Attach to a running daemon session
zesdex --attach <session-id>
# Set log level
RUST_LOG=debug zesdex
Key Bindings
| Binding | Action |
|---|---|
Ctrl+Q |
Quit |
Ctrl+H |
Help overlay |
Ctrl+P |
Settings overlay |
Ctrl+A |
Cycle agent mode |
Ctrl+B |
Bash panel |
Ctrl+S |
Session hub |
Ctrl+T |
Task list |
Ctrl+W |
Workflow view |
Ctrl+K |
Key input mode |
Esc |
Cancel / back |
Tab |
Autocomplete |
↑/↓ |
History / navigation |
Slash Commands
| Command | Description |
|---|---|
/help |
Show help |
/clear |
Clear transcript |
/model |
Select AI model provider |
/exit |
Exit application |
/settings |
Open settings |
/session |
Session management |
Agent Modes
- Auto — Full autonomy. The agent can read, write, edit files, run bash commands, and execute git operations without confirmation.
- Normal — Risky operations (write, delete, edit, bash, destructive git) require manual approval.
- Plan — Planning mode. The agent can analyze and propose changes but cannot execute mutations.
- Yolo — Unrestricted mode. Full autonomy with no confirmation prompts.
Security
Zesdex includes multiple layers of security:
- Catastrophic Guard — Detects and blocks destructive operations (rm -rf, force push, credential exfiltration) across all modes.
- Graduated Checks — Content-aware pattern matching for common danger zones (API keys, passwords, git credentials).
- Security Sidecar — Optional Python daemon for deep vulnerability scanning.
- Session Locking — Prevents multiple processes from operating on the same session directory.
- Workspace Isolation — All file operations are validated against workspace roots.
Installation
Prerequisites
- Rust 2021 edition toolchain
- (Optional) Python 3 for the security sidecar
Build from source
git clone <repository-url>
cd zesdex
cargo build --release
./target/release/zesdex
Security sidecar (optional)
pip install -r security-sidecar/requirements.txt
Configuration
Configuration is stored in ~/.config/zesdex/ (or platform equivalent). Key files:
config.yaml— Provider settings, default model, temperature, max tokensapp_config.yaml— AI provider definitions (name, URL, auth type)memory/— Persistent lesson and reference storagesessions/— Per-session transcripts and activity logs