Open source · Local & cloud · MCP · Multi-agent · Discord · Desktop app

AI coding assistant
for your terminal

Reads, edits, and runs code in any project. Use Ollama locally or connect to Groq, OpenRouter, Zen, and more.

$ curl -fsSL https://manthra.informaticsint.au/install | bash
↓ Download manthra-linux-x64

chmod +x manthra-linux-x64 && mv manthra-linux-x64 ~/.local/bin/manthra

↓ Download manthra-linux-arm64

chmod +x manthra-linux-arm64 && mv manthra-linux-arm64 ~/.local/bin/manthra

↓ Download manthra-macos-x64

chmod +x manthra-macos-x64 && mv manthra-macos-x64 ~/.local/bin/manthra

⚠ macOS Gatekeeper will block this binary

After downloading, run these commands in Terminal to allow it:

xattr -c ~/Downloads/manthra-macos-x64
codesign --force --deep --sign - ~/Downloads/manthra-macos-x64
chmod +x ~/Downloads/manthra-macos-x64
mv ~/Downloads/manthra-macos-x64 ~/.local/bin/manthra
── or: System Settings → Privacy & Security → Allow Anyway ──

Tip: the curl installer above handles this automatically.

↓ Download manthra-macos-arm64

Run the signing steps below before first launch.

⚠ macOS Gatekeeper will block this binary

After downloading, run these commands in Terminal to allow it:

xattr -c ~/Downloads/manthra-macos-arm64
codesign --force --deep --sign - ~/Downloads/manthra-macos-arm64
chmod +x ~/Downloads/manthra-macos-arm64
mv ~/Downloads/manthra-macos-arm64 ~/.local/bin/manthra
── or: System Settings → Privacy & Security → Allow Anyway ──

Tip: the curl installer above handles this automatically.

↓ Download manthra-win-x64.exe

Place in any folder on your PATH, e.g. C:\Users\you\bin\manthra.exe

Or install via Git Bash or WSL2: curl -fsSL https://manthra.informaticsint.au/install | bash

↓ Download Manthra-mac-arm64.dmg

macOS 12+ · Apple Silicon (M1 / M2 / M3 / M4) · ~150 MB

↓ Download Manthra-mac-x64.dmg

macOS 12+ · Intel · ~160 MB

↓ Download Manthra-win-x64.exe

Windows 10/11 · x64 · NSIS installer · ~150 MB

↓ Download Manthra-linux-x64.AppImage

chmod +x Manthra-linux-x64.AppImage && ./Manthra-linux-x64.AppImage

↓ Download Manthra-linux-arm64.AppImage

chmod +x Manthra-linux-arm64.AppImage && ./Manthra-linux-arm64.AppImage

The desktop app includes the full Manthra interface — chat, multi-agent, file picker, and settings — no terminal needed.

manthra — ~/my-project
✦ AGENTS.md loaded

refactor the auth module to use JWT instead of sessions

⠸ Analyzing…

✓ read src/auth/session.ts
✓ read src/auth/middleware.ts
✓ bash npm list jsonwebtoken

I'll replace SessionStore with jsonwebtoken across the auth module.

✓ edit src/auth/session.ts
✓ edit src/auth/middleware.ts
✓ Done. Auth refactored to JWT. All tests pass.
Chat · Ollama · qwen2.5-coder:latest · 11s

Setting up with Ollama

Run Manthra completely offline on your own machine. Free, private, no rate limits.

1

Install Ollama

Download from ollama.ai or install with one command on macOS and Linux.

# macOS / Linux
curl -fsSL https://ollama.ai/install.sh | sh

# Windows — download the installer from ollama.ai
2

Pull a model

Choose a model from the Ollama library. For coding tasks, qwen2.5-coder and deepseek-r1 are strong choices.

# Recommended for coding (7B — good quality / speed balance)
ollama pull qwen2.5-coder:7b

# Fast, lightweight option
ollama pull llama3.2

# Deep reasoning tasks
ollama pull deepseek-r1:7b
3

Start the Ollama server

Ollama listens on http://127.0.0.1:11434 by default. On macOS it starts automatically after installation.

ollama serve

# Verify it's running
curl http://127.0.0.1:11434/api/tags
4

Install Manthra

The installer detects your OS and architecture, downloads the right binary, and adds it to your PATH.

curl -fsSL https://manthra.informaticsint.au/install | bash

# Verify install
manthra --version
5

Connect Manthra to Ollama

Open the built-in web UI to add your Ollama instance, select a model, and save the configuration.

manthra web

# In the UI:
# → Add Provider → Ollama
# → Base URL: http://127.0.0.1:11434
# → List Models → select one → Save
6

Start coding

Navigate to any project directory and launch Manthra. It reads your files relative to where you started it.

cd ~/my-project && manthra
Tip: Run /init inside Manthra to generate an AGENTS.md file for your project. Manthra loads it automatically and uses it as project context — architecture, conventions, how to build, etc.

Connect to a remote Ollama server

Run Ollama on a cloud VM or dedicated machine and connect Manthra from any device — no local GPU required.

Deploy Ollama on a cloud VM

Any cloud provider works — AWS, GCP, Azure, DigitalOcean, Hetzner, etc. A GPU instance gives best performance; CPU-only works for smaller models.

On the remote server
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# Pull your model
ollama pull qwen2.5-coder:7b

# Bind to all interfaces (needed for remote access)
OLLAMA_HOST=0.0.0.0 ollama serve

Make it a persistent service

Set up a systemd service so Ollama starts automatically on reboot and stays running in the background.

/etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
ExecStart=/usr/local/bin/ollama serve
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now ollama

Open the firewall port

Allow inbound TCP on port 11434. Then restrict it to only your IP if possible — never leave it open to the internet without authentication.

ufw (Ubuntu)
# Allow from your IP only (recommended)
sudo ufw allow from YOUR_IP to any port 11434

# Or allow from anywhere (not recommended)
sudo ufw allow 11434/tcp

Connect Manthra to the remote URL

Open the web UI and add the remote server's IP or hostname as the base URL. The port is 11434 by default.

manthra web

# In the UI:
# → Add Provider → Ollama
# → Base URL: http://YOUR_SERVER_IP:11434
# → Test Connection → List Models → Save

Secure with a reverse proxy (recommended)

Put Nginx or Caddy in front of Ollama to get HTTPS and basic authentication. This lets you safely connect over the public internet.

Caddy (simplest — auto HTTPS)
# /etc/caddy/Caddyfile
ai.yourdomain.com {
basicauth {
user $2a$14$... # caddy hash-password
}
reverse_proxy localhost:11434
}
# Generate a bcrypt hash for your password
caddy hash-password

Environment variable alternative

Set OLLAMA_HOST before running Manthra to override the base URL without opening the web UI.

# Point to your remote server
export OLLAMA_BASE_URL=https://ai.yourdomain.com
manthra

# Or add to ~/.zshrc / ~/.bashrc
echo 'export OLLAMA_BASE_URL=https://...' >> ~/.zshrc

GPU cloud options: RunPod, Vast.ai, Lambda Labs, and Modal all support running Ollama on rented GPU instances at low cost.

MCP server support

Connect any Model Context Protocol server to give Manthra new tools — browser automation, database access, GitHub/GitLab integration, and more.

What is MCP?

MCP (Model Context Protocol) is an open standard for connecting AI assistants to external tools and data sources. Any MCP-compatible server can be registered with Manthra — the AI will see its tools and call them automatically when needed.

Tools are prefixed with mcp__<server-name>__<tool-name> to avoid conflicts — e.g. mcp__playwright__browser_navigate.

Add via web UI

Open the web config panel, navigate to MCP Servers, and click Add MCP Server. Fill in the name, transport (stdio for local processes, http for remote servers), and command or URL. Manthra connects automatically on next start.

manthra web

# → MCP Servers → Add MCP Server
# → Transport: stdio
# → Command: npx Args: -y @playwright/mcp@latest
# → Save

Config file format

MCP servers are stored in ~/.manthra/config.json under the mcpServers key. You can edit it directly or use the web UI.

stdio server (local process)
// ~/.manthra/config.json
{
  "mcpServers": [
    {
      "id": "playwright",
      "name": "Playwright",
      "enabled": true,
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"],
      "env": {}
    }
  ]
}
http server (remote / SSE)
// ~/.manthra/config.json
{
  "mcpServers": [
    {
      "id": "my-server",
      "name": "My Server",
      "enabled": true,
      "transport": "http",
      "url": "http://localhost:3000/sse"
    }
  ]
}
Fields: id (unique string) · name (display name) · enabled (bool) · transport stdio | http · command + args + env for stdio · url for http

Playwright MCP setup

Give Manthra a real browser — navigate pages, click elements, fill forms, take screenshots, and scrape content.

1

Open the web config UI

Launch the built-in configuration panel from any Manthra session or directly from your shell.

manthra web
2

Navigate to MCP Servers

Click the MCP Servers tab in the top navigation of the web UI, then click Add MCP Server.

3

Fill in the server details

Set transport to stdio. The npx command downloads and runs the Playwright MCP server on first use — no separate install needed.

Name: Playwright
Transport: stdio
Command: npx
Args: -y
@playwright/mcp@latest
4

Test the connection

Click Test in the web UI. On first run, npx will download @playwright/mcp and Playwright's browser binaries. Subsequent starts are instant from cache. A successful test shows a list of available tools.

First run only: Playwright downloads Chromium (~180 MB) on initial connection. If you prefer to pre-install: npm install -g @playwright/mcp && npx playwright install chromium
5

Save and restart Manthra

Click Save. Restart Manthra — you'll see the connection status at startup:

✓ MCP Playwright 18 tools loaded
6

Headless vs headed mode

By default Playwright MCP runs headless — the browser is invisible. Pass --headed to make it visible, which is useful for debugging or watching automations run live.

Headless (default — no visible browser)
Args: -y
@playwright/mcp@latest
Headed (visible browser window)
Args: -y
@playwright/mcp@latest
--headed
To switch modes, open manthra web → MCP Servers → edit the server → update the Args field → Save, then restart Manthra.
7

Use browser tools in chat

Ask Manthra to use the browser naturally. It will automatically invoke Playwright tools as needed.

# Example prompts:
go to https://example.com and take a screenshot
fill in the login form at http://localhost:3000
scrape the product list from that page and save it to products.json
click the Submit button and check the response

Other popular MCP servers

Server Package What it adds
Playwright @playwright/mcp@latest Browser automation — navigate, click, type, screenshot, scrape.
Context7 @upstash/context7-mcp Live library documentation lookup — always up-to-date docs for any npm package.
Sequential Thinking @modelcontextprotocol/server-sequential-thinking Step-by-step reasoning scaffold for complex multi-part problems.
GitHub @modelcontextprotocol/server-github Search repos, read files, create issues and PRs via GitHub API. Requires GITHUB_PERSONAL_ACCESS_TOKEN.
GitLab @zereight/mcp-gitlab GitLab repos, merge requests, and issues. Requires GITLAB_PERSONAL_ACCESS_TOKEN + GITLAB_API_URL.
All stdio servers follow the same pattern: set transport to stdio, command to npx, args to -y <package-name>, and any required API keys in the env fields.

Everything your AI needs
to work with your code

No cloud sync, no IDE plugin. Just a fast terminal that does the work.

Multi-provider

Use Ollama locally for fully offline operation, or connect to cloud providers — Groq, OpenRouter, Zen, Cerebras, or any OpenAI-compatible API.

Full tool use

Reads, writes, and edits files. Runs shell commands. Fetches URLs. Makes HTTP requests. The AI does real work, not just advice.

AGENTS.md context

Drop an AGENTS.md in your repo with architecture notes, conventions, and build instructions. Manthra loads it automatically. Generate one with /init.

Permission system

File operations inside your project directory are always allowed. Paths outside your working directory prompt for confirmation before proceeding.

Live streaming

Responses stream token by token with a pinned status bar and input line. Press ESC to cancel generation at any time.

Persistent memory

Use /remember to save facts across sessions. Memory is automatically injected into the system prompt each time you start Manthra.

Web config UI

Run manthra web to open a browser-based panel for managing providers, models, and settings without editing config files by hand.

Image support

Reference images in your prompts with @path/to/image.png. Manthra encodes them and sends them to vision-capable models.

Extended thinking

Toggle deep reasoning mode with /think. Supports off / low / medium / high budgets. Displayed in a collapsible thinking box.

Multi-agent mode

Enable sub-agent spawning from manthra web. The model can delegate self-contained subtasks to a focused sub-agent with its own tool loop, then fold the result back into the main response.

Desktop app

Native app for Mac, Windows, and Linux. Full chat interface with multi-agent cards, file attachments, history sidebar, and a visual settings panel — no terminal required.

🎮

Discord integration

Connect Manthra to Discord as an always-on bot. Full tool access — reads files, runs commands, uses MCP tools. Permission prompts via emoji reactions. Configure and control from manthra web.

Always-on Discord bot
with full Manthra power

Connect Manthra to Discord as a persistent listener. It reads files, runs commands, and uses all your MCP tools — just like the CLI.

1

Create a Discord bot

Go to the Discord Developer Portal, create an application, add a Bot, and copy the bot token.

# Enable these Gateway Intents in the Portal:
✓ Message Content Intent
✓ Server Members Intent

# Invite the bot to your server with these permissions:
Send Messages · Read Message History · Add Reactions
2

Add a channel in Manthra

Open manthra web → Channels tab → Add Channel. Select Discord, paste your bot token, and pick a provider + model.

manthra web

# In the UI:
# → Channels tab → + Add Channel
# → Platform: Discord
# → Paste bot token
# → Select provider + model → Save
3

Configure listen mode

Choose how the bot responds: only when @mentioned, on every message in specific channels, or triggered by keywords.

4

Start the channel

Click Start — the bot connects to Discord and begins listening. Monitor live status, message counts, and uptime from the web UI.

# The bot is now online in your Discord server
@ManthraBot refactor the auth module to use JWT

# Bot reads files, runs tools, asks for permission via reactions
✅ Allow once · 🔁 Always · 📌 Project · ❌ Deny
Permission system: When the bot needs to run a command or modify files, it sends a permission request in Discord with emoji reactions. Only the user who sent the original message can approve. Requests auto-deny after 60 seconds for safety.

Full CLI capabilities

The Discord bot has the same tool access as the terminal — file I/O, shell commands, git, web search, and all configured MCP servers.

# Everything the CLI can do:
read / write / edit files
run bash commands
git operations
web fetch & search
all MCP tools

Live monitoring

Track your bot in real-time from the web UI. See online/offline status, message counts, uptime, and errors at a glance.

Status: ● Online
Uptime: 2h 34m
Messages: ↑ 47 received · ↓ 43 sent
Model: qwen2.5-coder:7b
Listen: mention-only

Slash commands

Type any command at the Manthra prompt. All commands start with /.

Command Description
/help List all available slash commands with descriptions.
/model <id> Switch the active model mid-session. Run without arguments to see available models.
/clear Reset the conversation history. The AI starts fresh with no memory of the current session.
/remember <text> Save a note to persistent memory. It will be included in every future session's system prompt.
/forget <id> Remove an entry from persistent memory by its ID (shown by /memory).
/memory List all stored memory entries with their IDs and content.
/init Generate an AGENTS.md file in the current directory. The AI scans your project and writes architecture notes and build instructions.
/web Open the web configuration UI in your browser (runs on port 4875 by default).
/context /ctx Show current context usage — message count, estimated token count, and percentage of the context window used.
/doctor Run a diagnostic check on your provider and model configuration. Shows what's connected and what isn't.
/think [off|low|medium|high] Toggle extended thinking mode. Set budget level or turn off. Thinking output is shown in a collapsible box.
/format [off|json] Force the model to respond in JSON format. Useful for structured data extraction.
/exit End the session. Conversation history is saved automatically to ~/.manthra/conversations/.
Keyboard shortcuts: Ctrl+E opens your $EDITOR for composing multi-line messages · Shift+Enter / Option+Enter adds a new line without submitting · Ctrl+V pastes from clipboard · ESC cancels an in-progress generation · Ctrl+D exits

Any model, any provider

Use local Ollama models or connect to cloud providers. Switch models mid-session with /model — no restarts needed.

qwen2.5-coder
Best for code generation
deepseek-r1
Strong reasoning
llama3.2
Fast, general purpose
mistral
Lightweight & fast
gemma3
Google open model
phi4
Microsoft, strong on code
codellama
Meta code-focused
+ any Ollama model
ollama.ai/library
Groq / Cerebras
Fast cloud inference
OpenRouter / Zen
100+ models via API

Runs everywhere you code

Single binary — no Node.js, no runtime, no dependencies required.

Linux

x64 and arm64. Works on Ubuntu, Debian, Fedora, Arch, and any modern distro with glibc ≥ 2.17.

x64 arm64

macOS

Intel and Apple Silicon (M1 / M2 / M3). macOS 12 Monterey or later. The curl installer handles Gatekeeper automatically.

x64 (Intel) arm64 (M-series)

Windows

Via Git Bash or WSL2 (recommended), or as a native .exe. Windows Terminal gives the best rendering experience.

x64 Git Bash WSL2

Start coding with Manthra

CLI or desktop. Local or cloud. Your choice.