Repository navigation
Releasing
How malac releases are tagged, built, signed and published.
-
Bump
versionin the rootCargo.tomland runcargo buildsoCargo.lockfollows. -
Commit, then tag and push:
git tag v0.2.0 && git push origin v0.2.0 -
The
releaseworkflow builds:-
malac-<version>-aarch64-apple-darwin.tar.gzandmalac-<version>-x86_64-apple-darwin.tar.gz -
malac-<version>-macos.pkg, a universal installer that puts both binaries in/usr/local/bin malac-<version>-x86_64-unknown-linux-gnu.tar.gzSHA256SUMS
It then publishes them as a GitHub release with generated notes.
-
install.sh and malac update pick up the latest release automatically and verify the checksum. The install script falls back to a source build when no archive matches the machine.
scripts/package.sh # this machine only
scripts/package.sh aarch64-apple-darwin x86_64-apple-darwin --pkgThe second form needs rustup target add x86_64-apple-darwin. Files land in dist/. Upload them with gh release create v0.2.0 dist/* if CI is unavailable.
Unsigned packages trigger Gatekeeper on download: users have to right-click and choose Open. To sign the package, set MALAC_SIGN_IDENTITY to a "Developer ID Installer" identity from your keychain before running scripts/package.sh --pkg. Then notarize it:
xcrun notarytool submit dist/malac-<version>-macos.pkg --keychain-profile <profile> --wait
xcrun stapler staple dist/malac-<version>-macos.pkgFormula/malac.rb builds the tagged release from its source archive, so brew install lobirus/malac/malac installs it; brew install --HEAD builds main. For each release, point its url at https://github.com/lobirus/malac/archive/refs/tags/v<version>.tar.gz and update its sha256 (curl -sL <url> | shasum -a 256).
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