Skip to main content
First time here? Complete the C++ Framework Setup guide first to build the gaia_core library.
Native binary. gaia-bash is a compiled C++ binary built on the GAIA C++ framework (gaia_core). No Python runtime required for the agent itself — just Lemonade Server for LLM inference.

Overview

gaia-bash is a domain-specialized coding agent for bash/shell scripting. It provides:
  • Interactive TUI — Claude Code-style terminal interface with markdown rendering, streaming, and split-pane layout
  • Bash expertise — system prompt tuned for POSIX compliance, shellcheck integration, BATS test generation
  • 10 built-in tools — file I/O, git inspection, shell execution, and environment introspection (more planned: linting, testing, clipboard)
  • REST API server — OpenAI-compatible endpoint for external tool integration
  • MCP server — stdio transport for Claude Code, OpenCode, and other MCP-compatible agents
  • Session persistence — save and resume conversations across runs
  • 100% local — runs entirely on AMD hardware via Lemonade Server, no cloud dependency

Quick Start

1

Build the binary

2

Start Lemonade Server

Ensure the default model is loaded (override with --model or LEMONADE_MODEL):
3

Run the agent


Modes of Operation

Interactive TUI

The default mode. Launches a fullscreen terminal UI with:
  • Chat history — scrollable, markdown-rendered responses with syntax highlighting
  • Status bar — current model, token count, step counter
  • Input area — multi-line input with history (up/down arrows)
  • Tool approval — modal dialog for destructive operations

Single Query

Run one query, print the result, and exit:

Pipe Mode

No TUI — streams plain text to stdout. Ideal for scripting and CI:

API Server

Expose the agent as an HTTP REST API:
See API Server below.

MCP Server

Run as an MCP tool server for external agents:
See MCP Server below.

Session Resume

Resume a previous conversation:

Slash Commands

Built-in commands available in interactive mode: Bash-specific commands:
The following slash commands are planned but not yet available.

Built-in Tools

Framework Tools (shared with all C++ agents)

Bash-Specific Tools

The following tools are planned but not yet available in this release.

API Server

The API server exposes the bash agent via an OpenAI-compatible HTTP REST API, enabling integration with any tool that speaks the OpenAI protocol.

Start the server

Endpoints

POST /v1/chat/completions

Main endpoint — send messages, get agent responses with tool calls.
Streaming mode:
Streaming is simulated: the response is delivered as a single SSE data: chunk followed by data: [DONE], not token-by-token. The agent runs its full tool loop before emitting the final answer, so real incremental token streaming isn’t available through this endpoint yet. The SSE envelope is OpenAI-compatible, so streaming clients work unchanged.

GET /v1/tools

List all registered tools with their parameter schemas:

POST /v1/tools/{name}

Execute a specific tool directly (bypass the LLM):

GET /health

Health check:

GET /sessions, DELETE /sessions/{id}

Session management:

MCP Server

The MCP server exposes the bash agent as a tool server over the Model Context Protocol, enabling any MCP-compatible agent to use bash tools.

Configure in Claude Code

Add to ~/.claude/settings.json:
Now Claude Code can use bash agent tools:

Configure in OpenCode

Add to OpenCode’s MCP config:

MCP Capabilities

Test the MCP server


Demo Walkthrough

A quick demo showing the key features of gaia-bash:

1. Write a Script

2. Review the Script

3. Generate Tests

4. Use via API

5. Use via MCP from Claude Code


Configuration

Environment Variables

CLI Flags


Building from Source

Prerequisites

  • CMake 3.14+
  • C++17 compiler (MSVC 2019+, GCC 9+, Clang 10+)
  • Lemonade Server running with a coding model loaded

Build

Run Tests

Build Options


Architecture