Contributing
malac is MIT licensed and developed on GitHub. It is opinionated and follows its author’s workflow, so it is shared as is rather than run as a community project: issues and ideas are welcome, but changes that pull it in a different direction may not be merged. Forking is encouraged. This page is for anyone who wants to build it, change it for themselves or see how it works.
Build and test
Section titled “Build and test”You need Rust 1.86 or newer.
git clone https://github.com/lobirus/malac && cd malaccargo testcargo clippy --all-targetscargo run -p malac -- --helpOn Linux, malac-control needs the X11 and D-Bus headers:
sudo apt-get install -y libxcb1-dev libxrandr-dev libdbus-1-dev pkg-configTo install your checkout:
cargo install --path crates/malac && cargo install --path crates/malac-control# or, through the install script:MALAC_SOURCE=. sh install.shWhat CI checks
Section titled “What CI checks”Every push to main and every pull request runs, on macOS and Ubuntu:
cargo fmt --all --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspaceThe VS Code extension is type-checked as well. Run the same commands before opening a pull request.
Where things are
Section titled “Where things are”| Path | Contents |
|---|---|
crates/malac-core |
Runtime, agent loop, tools, providers, permissions, memory, sessions, updates |
crates/malac |
CLI, terminal UI and renderer, REPL, web server |
crates/malac-control |
Computer and browser control service |
crates/malac-mcp |
MCP client and server |
crates/malac-core/prompts |
System prompts |
web/ |
The web UI: static files compiled into the binary |
editors/vscode |
The VS Code extension |
docs/ |
Configuration, architecture and release notes for developers |
examples/ |
An example configuration and agent type |
Architecture explains how the pieces fit together.
Working on the web UI
Section titled “Working on the web UI”The UI’s files are compiled into the binary, so changes normally need a rebuild. MALAC_WEB_DIR serves them from disk instead:
MALAC_WEB_DIR=$PWD/web cargo run -p malac -- web --openReload the page to see changes.
Working on the VS Code extension
Section titled “Working on the VS Code extension”Open editors/vscode in VS Code and press F5, or:
cd editors/vscode && npm install && npx tsc -p . \ && code --extensionDevelopmentPath="$PWD" /path/to/projectDebugging
Section titled “Debugging”MALAC_LOG=debug malac --plain your prompt # malac logs on stderrRUST_LOG=debug malac-control stdio # the control serviceSession transcripts in ~/.malac/sessions record exactly what was sent and received; malac sessions show <id> prints one readably.
These docs
Section titled “These docs”This site is built with Astro and Starlight from a separate repository. Report mistakes in the docs as issues on the malac repository.
malac is created by lobirus and released under the MIT license. About malac