Repository navigation
Quick start
Add a provider, run a prompt, and start an interactive session.
This page assumes malac is installed.
If ANTHROPIC_API_KEY or OPENAI_API_KEY is already set in your environment, you can skip this step: malac has built-in anthropic and openai providers that read those variables.
Otherwise, add a provider. The key is read from stdin and stored in ~/.malac/credentials.toml, readable only by you:
printf '%s' "$OPENAI_API_KEY" | malac provider add openai \
--base-url https://api.openai.com/v1 --model gpt-5 --api-key-stdin --set-default--set-default makes openai/gpt-5 the default model. Check what you have:
malac provider list
malac modelsConfigure a provider covers Anthropic, gateways and local models.
Everything after the options is the prompt. Quotes are optional:
malac explain how requests are routed in this repomalac starts working right away. In the default ask mode, it asks before it edits a file or runs a command. Reading and searching never ask.
To let it work without asking, use autopilot:
malac -y add a --json flag to the export command and test itWarning
Autopilot means autopilot
With -y, the agent runs commands and edits files without asking. Deny rules still apply, but they are pattern matches, not a sandbox. Use it in repositories you can restore. See Permissions and autopilot.
Piped stdin becomes part of the prompt:
git diff | malac review this changeWith -p, malac answers and exits, which is handy in scripts. See Plain mode and scripting.
malac # interactive: reopens your last workspace
malac -n # a fresh workspace
malac -c # continue the last session in this directory
malac web --open # the same sessions in your browserInteractive sessions run in the malac daemon, which starts by itself: quitting leaves the agents working, and malac brings you back to them from any folder. A workspace holds tabs, one per project folder; malac <prompt> adds a tab for the folder you are in. See Workspaces, tabs and the daemon.
In a session, type a prompt and press Enter. The full-screen UI has menus (F9), a model picker (F4) and help (F1); see The terminal UI. Slash commands work in both interfaces:
| Command | What it does |
|---|---|
/model |
Show or switch the model |
/mode |
Show or change the permission mode |
/agents |
Show subagents and what they are doing |
/cost |
Token usage and cost of this session |
/help |
List every command |
Ctrl+C interrupts the current turn and every subagent it started. See Slash commands for the full list.
If a prompt starts with a subcommand name, malac still treats it as a prompt when it does not parse as that subcommand: malac web scraper for the docs is a prompt. malac -- <prompt> always is.
- Your first task: a guided bug fix, start to finish.
- The terminal UI: menus, tabs and keys.
- Configuration reference: every setting.
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