Repository navigation
Installation
Install malac with the install script, Homebrew, a release archive or the macOS installer, or build it from source.
malac ships as two binaries: malac, the agent, and malac-control, the computer and browser control service. Every install method below installs both.
macOS is the primary platform and Linux is supported. Windows is not supported yet.
The current release is malac {version}.
The VS Code page has more on the extension.
curl -fsSL https://raw.githubusercontent.com/lobirus/malac/main/install.sh | shThe script downloads the latest GitHub release for your machine and verifies it against the release's SHA256SUMS:
| Platform | Target | In {tag} |
|---|---|---|
| macOS, Apple silicon | aarch64-apple-darwin |
prebuilt |
| macOS, Intel | x86_64-apple-darwin |
prebuilt |
| Linux, x86-64 | x86_64-unknown-linux-gnu |
prebuilt |
When the release has no archive for your machine (another CPU or system), the script builds malac from source instead. That needs Rust 1.86 or newer from rustup.rs or brew install rust, and git. A source build takes a few minutes.
The binaries go to ~/.local/bin. If that directory is not on your PATH, the script tells you what to add to your shell profile:
export PATH="$HOME/.local/bin:$PATH"Set these environment variables for the sh side of the pipe:
| Variable | Default | Effect |
|---|---|---|
MALAC_INSTALL_DIR |
~/.local/bin |
Where the binaries go |
MALAC_VERSION |
latest | Release tag to install, for example v0.2.0
|
MALAC_FROM_SOURCE |
unset | Set to 1 to always build from source |
MALAC_REF |
main |
Branch or tag to build from source |
MALAC_SOURCE |
unset | Build this local checkout instead of cloning, for example .
|
MALAC_RELEASES |
GitHub releases | Release download base URL, for mirrors |
For example, to install a specific version into /opt/malac/bin:
curl -fsSL https://raw.githubusercontent.com/lobirus/malac/main/install.sh \
| MALAC_VERSION=v0.2.0 MALAC_INSTALL_DIR=/opt/malac/bin shbrew tap lobirus/malac https://github.com/lobirus/malac
brew install lobirus/malac/malacThe formula builds the tagged release from source with Homebrew's Rust; brew install --HEAD lobirus/malac/malac builds the main branch instead. Homebrew installs are updated with brew upgrade lobirus/malac/malac, not with malac update.
Each release, {tag} included, contains these files:
| File | Contents |
|---|---|
malac-<version>-aarch64-apple-darwin.tar.gz |
macOS, Apple silicon |
malac-<version>-x86_64-apple-darwin.tar.gz |
macOS, Intel |
malac-<version>-macos.pkg |
Universal macOS installer; puts both binaries in /usr/local/bin
|
malac-<version>-x86_64-unknown-linux-gnu.tar.gz |
Linux, x86-64 |
malac-vscode-<version>.vsix |
The VS Code extension |
SHA256SUMS |
Checksums of every file |
To check a download, put SHA256SUMS in the same folder and run shasum -a 256 -c SHA256SUMS; files you did not download are reported as missing.
Each archive contains malac and malac-control. Unpack it and put both binaries in the same directory on your PATH; malac looks for malac-control next to itself first.
Note
Unsigned packages
If a .pkg is not signed, Gatekeeper blocks it on first open. Right-click the file and choose Open. Because /usr/local/bin is not writable by your user, a .pkg install updates with the next installer or with sudo malac update.
From a checkout of the repository:
cargo install --path crates/malac && cargo install --path crates/malac-controlThis needs Rust 1.86 or newer.
malac --version
malac-control --helpmacOS
Desktop control needs two privacy permissions. macOS grants them to the app that started `malac-control`, usually your terminal. In **System Settings → Privacy & Security**, grant your terminal app:
- **Screen & System Audio Recording** (called **Screen Recording** before macOS 15)
- **Accessibility**
Then restart the terminal. Alternatively, run `malac-control serve` in a terminal that already has both; malac connects to it automatically. Browser control needs neither permission.
Linux
The release archive targets x86-64 Linux with glibc, and the install script uses it. On other machines the script builds from source: install Rust 1.86 or newer and `git` first. A source build of `malac-control` needs the X11 and D-Bus development headers, for example on Debian or Ubuntu:
```bash
sudo apt-get install -y libxcb1-dev libxrandr-dev libdbus-1-dev pkg-config
```
Quick start adds a provider and runs your first prompt.
Getting started
Tutorials
- Tutorials
- Tutorial 1: Your first task
- Tutorial 2: Delegating to subagents
- Tutorial 3: Automating a browser
- Tutorial 4: Long-term memory with Milvus
- Tutorial 5: Running malac unattended
- Tutorial 6: Customizing malac
- Tutorial 7: Running malac on a server
Using malac
- Workspaces, tabs and the daemon
- The terminal UI
- Plain mode and scripting
- Sessions
- Jobs
- Permissions and autopilot
- Subagents
- Memory
- Project context
- Plugins and marketplaces
- Computer and browser control
- Web UI
- VS Code
- Remote access
- Mobile (preview)
- MCP servers
- Configure malac by asking
- Updating
Reference
- CLI
- Slash commands
- Configuration
- Tools
- Control service tools
- JSON events
- Protocol
- Environment variables
Guides
- Using an LLM gateway
- Running models locally
- Vector memory with Milvus
- Controlling a remote machine
- Writing agent types, skills and commands
- Security model
- Things to know
Project