Fork of OpenCode by Kujtim Hoxha. Maintained by José F. Rives.
A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.
Pando is a Go-based CLI application that brings AI assistance to your terminal. It provides a TUI (Terminal User Interface), PWA WebUI and desktop application for interacting with various AI models to help with coding tasks, debugging, and more.
- Terminal UI — interactive TUI built with Bubble Tea, with a vim-like editor, file tree and terminal.
- Web UI and desktop app — PWA Web UI embedded in the binary, also packaged as a native Wails desktop app. More
- Many AI providers — GitHub Copilot, OpenAI, Anthropic, Gemini, AWS Bedrock, Groq, Azure OpenAI, Ollama, llama.cpp, OpenRouter and any OpenAI-compatible endpoint.
- Editor integration (ACP) — use Pando inside Zed, VS Code or JetBrains IDEs. More
- Host command sandbox — agent commands confined with OS-native mechanisms, on by default. More
- Token reduction — output compression filters for noisy commands and opt-in
/cavemanbrevity. More - Workflow modes —
/superpowers,/learning,/goaland more slash commands, plus your own custom commands. More - Language servers on demand — 45 LSP presets started and installed only when needed. More
- Knowledge Base — document conversion and
[[wiki links]]for persistent project knowledge. More - Subagent delegation — orchestrated subagents, warm instance reuse and a durable event log. More
- MCP client and server — connect authenticated MCP servers, or expose Pando as one. More
- Desktop Controller — opt-in accessibility-tree UI automation. More
- AG-UI — drive Pando from CopilotKit and other Generative-UI frontends. More
- Decision model — one small local model (Ollama
tev1:0.8b) shared by model auto mode, persona auto-select and an opt-in relevance filter for injected context. More - Agent self-service —
pando_setuplets the agent inspect its own configuration and models. More - LLM proxy and multi-instance IPC — route LLM requests through Pando; running instances discover and talk to each other.
- Extensions — compile-time extensions, Lua hooks and prompt templates. More
Linux and macOS:
curl -fsSL https://raw.githubusercontent.com/digiogithub/pando/main/scripts/install.sh | bashWindows (PowerShell):
iex (irm https://raw.githubusercontent.com/digiogithub/pando/main/scripts/install-windows.ps1)Or download a binary from the latest release: .pkg for macOS, .zip for Linux and Windows.
Go install, building from source and extension builds: see docs/installation.md.
pando # terminal UI
pando app # Web UI in the desktop window
pando acp # ACP server for editors
pando -p "Explain the use of context in Go" # one-shot promptMore commands in docs/usage.md.
| Topic | Guide |
|---|---|
| Installation and building | installation.md |
| Configuration files and environment variables | configuration.md |
| Command-line usage | usage.md |
| Web UI and remote access | webui.md |
| Editor integration (ACP) | acp.md |
| Slash and custom commands | slash-commands.md |
| Language servers | lsp.md |
| Knowledge Base | knowledge-base.md |
| Subagent delegation | delegation.md |
| Host command sandbox | sandbox.md · coverage |
| Output compression filters | output-filters.md |
| MCP server authentication | mcp-authentication.md |
| Model pricing and capabilities | model-catalog.md |
| Decision model (shared provider and relevance filter) | decision-model.md |
| Model auto mode (per-prompt routing) | model-auto-mode.md |
| Remote diagnostics (telemetry) | telemetry.md |
| AG-UI / CopilotKit | agui.md |
| Desktop Controller | desktop-controller.md |
Agent self-service (pando_setup) |
pando-setup.md |
| Prompt templates and Lua hooks | prompt-templates.md · lua-hooks-prompts.md |
| Extensions | mechanisms · authoring · builds · frontend · memory |
| Architecture | architecture.md |
| Release pipeline | release-pipeline.md |
Pando is a fork of OpenCode, originally created by Kujtim Hoxha.
Special thanks to:
- @isaacphi - For the mcp-language-server project
- @adamdottv - For the design direction and UI/UX architecture
- The broader open source community
Pando is licensed under the MIT License. See the LICENSE file for details.
Genera una nueva tag
interactive:true
git tag --sort=creatordate | tail -n 5
git tag $(gum input)
git push origin --tagsCompiles the webui
# Build embedded web-ui assets
cd web-ui && bun install && bun run build:embedded && cd ..Compiles the desktop wails wrapper
make desktop-build
make desktop-embedCompiles the binary
requires: build-webui, build-desktop
export PANDO_BETTERSTACK_TOKEN=$(kvage get pando_betterstack_token)
# Get version from last git tag
VERSION=$(git describe --tags 2>/dev/null || echo "dev")
#go build -ldflags "-X github.com/digiogithub/pando/internal/version.Version=$VERSION" -o pando .
make build
rm -f *.logCompile the working binary and copy to the binary path ~/bin/.
requires: build
rm -f ~/bin/pando
upx -1 pando
cp pando ~/bin/pando
rm -f *.upxNote: these two tasks are the manual/local path. Pushing a
v*tag runs the whole thing on GitHub Actions — Linux x64/arm64, Windows x64, and the signed + notarized macOS.zip,.appand.pkgartifacts — and publishes a release with the changes since the previous tag. See docs/release-pipeline.md.
Compiles the binaries for the different platforms (Linux x64, Windows x64, macOS aarch64) and zip them into dist/.
interactive:true
export PANDO_BETTERSTACK_TOKEN=$(kvage get pando_betterstack_token)
# Create dist folder
mkdir -p dist
rm dist/*.zip
# Build embedded web-ui assets
cd web-ui && bun install && bun run build:embedded && cd ..
# Get version from last git tag
VERSION=$(git describe --tags 2>/dev/null || echo "dev")
# Linux x64
make release-linux-amd64
# Linux arm64
make release-linux-arm64
# Windows x64
make release-windows-amd64
# macOS aarch64
make release-darwin-arm64
# macOS x64
make release-darwin-amd64
echo "Run in osx terminal the command:"
echo " cd ~/www/MCP/Pando/pando && xc release-osx"
echo
bash -c 'read -n 1 -s -r -p "When the command finish, press any key to continue..."'
echo
scp mac-mini-de-digio:~/www/MCP/Pando/pando/dist/*.zip dist/
echo "Release builds completed in dist/"Builds and notarizes the macOS artifacts: the embedded desktop wrapper (so
pando desktop from a standalone binary is not killed by Gatekeeper), the loose
CLI zips (pando-darwin-<arch>.zip, submit-only), the Pando-<arch>.app bundles
(notarized + stapled) and the .pkg installers (notarized + stapled).
Notarization submits several artifacts to Apple with --wait, so this task can
take 10–30 min. Requires network access and the pando-notary keychain profile.
interactive:true
export PATH=$PATH:/usr/local/bin:~/.bun/bin:/opt/homebrew/bin/:~/go/bin
cd ~/www/MCP/Pando/pando
git pull origin main
git fetch origin --tags
rm -rf dist
mkdir -p dist
# Signing identities, keychain path/password and NOTARY_PROFILE.
eval "$(cat ~/DIGIO_Software_Signing_Keys/kvagerc)"
NOTARYTOOL_STORE_CREDENTIALS=1 bash scripts/setup-macos-signing-keychain
# Ensure notarization env is exported BEFORE `xc build` so `make desktop-embed`
# notarizes the embedded wails wrapper. Defaults match the signing scripts.
export NOTARY_PROFILE="${NOTARY_PROFILE:-pando-notary}"
export MACOS_SIGN_KEYCHAIN_PATH="${MACOS_SIGN_KEYCHAIN_PATH:-$HOME/Library/Keychains/pando-build-db}"
# xc build -> build-desktop -> make desktop-embed: signs AND notarizes the
# embedded desktop wrapper (skipped non-fatally if the notary env is missing).
xc build
# Signs the loose CLI binaries with the hardened runtime (codesign-macos).
make release-darwin-arm64
make release-darwin-amd64
# Notarizes the CLI zips (submit-only) and builds + notarizes + staples the
# .app bundles and .pkg installers.
bash scripts/build-macos-app
# Verify notarization stapling on the distributable bundles/installers.
echo "== Verifying notarization staples =="
for f in dist/Pando-arm64.app dist/Pando-x64.app dist/*.pkg; do
[ -e "$f" ] && { echo "-- $f"; xcrun stapler validate "$f" || echo " NOT stapled: $f"; }
done
echo "Release builds completed in dist/"
