Repository navigation
Home
Multi-Agent Loop for Autonomous Coding. An autonomous coding agent for the terminal, with a web UI, a VS Code extension, and a control service for the desktop and browser. Written in Rust. (Malac is also Hungarian for pig.)
Source code and releases: https://github.com/lobirus/malac
Created by lobirus and released under the MIT license.
malac is opinionated: it is built around its author's workflow and changes whenever that workflow does, to make everyday work faster and more comfortable. It is open source so anyone can use it without wondering what runs under the hood, and it is shared as is rather than run as a community project. The name is Hungarian for pig, and it is quick to type: five letters, three of them on the home row.
- Introduction: What malac is, what it can do, and where to start.
- Installation: Install malac with the install script, Homebrew, a release archive or the macOS installer, or build it from source.
- Quick start: Add a provider, run a prompt, and start an interactive session.
- Configure a provider: Connect malac to OpenAI, Anthropic, an LLM gateway or a local model, and pick the default model.
- Tutorials: Hands-on, step-by-step walkthroughs of malac, from a first bug fix to unattended runs.
- Tutorial 1: Your first task: Install malac, add a provider, have it fix a bug, and review what it did.
- Tutorial 2: Delegating to subagents: Run a read-only research task and a refactor in parallel, and watch the agent tree in the terminal and the web UI.
- Tutorial 3: Automating a browser: Set up the control service and a browser profile, log in once, and let malac scrape a site that needs the login.
- Tutorial 4: Long-term memory with Milvus: Run Milvus in Docker, configure embeddings, and watch malac save and recall memories across sessions.
- Tutorial 5: Running malac unattended: Use autopilot with deny rules, run malac in CI with JSON output, and review the session afterwards.
- Tutorial 6: Customizing malac: Write an agent type and a skill, connect MCP servers, and change settings by asking malac.
- Tutorial 7: Running malac on a server: Install malac on a Linux server, pair your Mac with its daemon over SSH, and drive the agents from the terminal UI and a phone.
- Workspaces, tabs and the daemon: How malac keeps your work in a per-user daemon, organised as workspaces of tabs, so agents outlive the terminal and every client shares them.
- The terminal UI: malac's full-screen terminal interface, with a menu bar, workspace tabs, agents per tab, a status line and a function-key bar.
- Plain mode and scripting: The line-based interface, one-shot prompts with -p, piping stdin, and JSON output for scripts and CI.
- Sessions: Where malac keeps transcripts, how to continue and resume sessions, and how compaction works.
- Jobs: Background processes that agents start, such as dev servers and watchers, and how to watch and stop them.
- Permissions and autopilot: Permission modes, allow and deny rules, and what autopilot does and does not protect you from.
- Subagents: How malac delegates work to subagents that run in parallel, and how to watch and steer them.
- Memory: Long-term memory as Markdown files, with optional semantic search and automatic recall through Milvus.
- Project context: What malac reads about a project before the first prompt, in every agent's format, and what it keeps for the next session.
- Plugins and marketplaces: Install skills, slash commands, agent types, MCP servers and hooks as plugins, in Claude Code's format or the open Agent Plugins one, from any git repository.
- Computer and browser control: malac-control exposes the desktop and Chrome as MCP tools, with isolated browser profiles.
- Web UI: The daemon's web UI - workspaces, tabs, agents, jobs, approvals and every setting, in the browser.
- VS Code: The malac extension for VS Code and compatible editors - a native chat panel with the current file as context, plus workspace, jobs, sessions and usage views.
- Remote access: Run the agents on a server and drive them from a laptop, a phone or another browser. Devices pair once and get a token of their own.
- Mobile (preview): Native malac apps for Android and iPhone. Download the Android app from the releases or build either one; they pair with a daemon the same way a laptop does.
- MCP servers: Connect Model Context Protocol servers over stdio, streamable HTTP or WebSocket.
- Configure malac by asking: malac can inspect and change its own configuration, store API keys, manage plugins and install updates when you ask.
- Updating: How malac checks for and installs new releases without interrupting running agents.
- CLI: Every malac and malac-control command, flag and subcommand.
- Slash commands: Commands you can type in an interactive malac session.
- Configuration: Every malac configuration key, with its type, default and meaning.
- Tools: The built-in tools malac's agents use, their arguments and their permission kinds.
- Control service tools: The computer_* and browser_* tools served by malac-control.
- JSON events: The event stream printed by malac --json, one JSON object per line.
- Protocol: A summary of the malac daemon's WebSocket and HTTP API, for people writing clients.
- Environment variables: Environment variables read by malac, malac-control and the install script.
- Using an LLM gateway: Use a LiteLLM-style gateway with malac, through the OpenAI or the Anthropic wire format.
- Running models locally: Use malac with local models through Ollama or vLLM, including local embeddings for memory.
- Vector memory with Milvus: Set up semantic memory search and automatic recall with a local Milvus in Docker or with Zilliz Cloud.
- Controlling a remote machine: Run malac-control on a remote machine with a desktop and connect malac to it, to test GUIs and websites there.
- Writing agent types, skills and commands: Reusable subagent roles, skills with scripts in the Agent Skills format, and slash commands in Claude Code's and Gemini CLI's formats.
- Security model: What protects you when malac runs commands, serves other devices, installs plugins, or works in a repository you just cloned, and what does not.
- Things to know: Practical notes and frequently asked questions about malac.
- Architecture: How malac's crates, runtime, agents, events, providers and services fit together.
- Contributing: Build malac from source, run the tests, and work on the web UI, the VS Code extension and these docs.
- Releasing: How malac releases are tagged, built, signed and published.
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