A personal local coding agent built as a Rust 2024 workspace. The first usable path is xyan exec, backed by llama-server from llama.cpp running on http://localhost:8080.
xyan-cliincrates/cli: command-line entrypoint and launch modes.xyan-coreincrates/core: conversation state and agent loop.xyan-llmincrates/llm: provider trait, model events, and llama.cpp streaming adapter.xyan-toolsincrates/tools: read-only and approval-gated tool primitives.xyan-stateincrates/state: SQLite schema and persistence helpers.xyan-memoryincrates/memory: higher-level agent recall primitives.xyan-configincrates/config: TOML config loading and precedence.xyan-tuiincrates/tui: initial terminal UI shell.
Start llama-server separately and point it at your local GGUF model:
llama-server -m /absolute/path/to/model.gguf --host 127.0.0.1 --port 8080Run a non-interactive prompt:
cargo run -p xyan-cli -- exec "summarize this repo"Start the TUI shell:
cargo run -p xyan-cliShow the global config path:
cargo run -p xyan-cli -- config pathGlobal config lives at ~/.xyan/config.toml. Workspace overrides live at .xyan/config.toml.
model = "qwen2.5-coder:7b"
llama_base_url = "http://localhost:8080"
approval_mode = "prompt"
max_context_bytes = 120000
shell_timeout_seconds = 60Model precedence:
- CLI
--model - config file
XYAN_MODELqwen2.5-coder:7b
just fmt
just test
just run