Documentation Index
Fetch the complete documentation index at: https://lab.pollack.ai/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Java 21+ on PATH
- An agentic CLI installed and authenticated (e.g., Claude Code, Gemini CLI, Codex)
- An ACP-compatible IDE — JetBrains 2026.1+, Zed, VS Code, or any editor with ACP support
Install from Release
Download the fat JAR from the v0.4.0 release:
bud-acp-server-0.4.0-jar-with-dependencies.jar — the ACP agent
Install from Source
git clone https://github.com/markpollack/bud.git
cd bud
./mvnw package -DskipTests
This produces:
bud-acp-server/target/bud-acp-server-*-jar-with-dependencies.jar
Create or edit ~/.jetbrains/acp.json:
{
"agent_servers": {
"Bud": {
"command": "java",
"args": [
"-jar",
"/path/to/bud-acp-server-0.4.0-jar-with-dependencies.jar"
]
}
}
}
Replace /path/to with the absolute path where you saved the JAR.
Restart your JetBrains IDE after editing the config.
Your First Project
- Open any project in IntelliJ
- Open AI Chat tool window
- Select “Bud” from the agent dropdown
- Type:
create a REST app called hello-api in /tmp
Bud will scaffold a complete Spring Boot REST project with:
GreetingController with GET endpoint
GreetingService with business logic
ProblemDetail error handling
- Working tests
- Maven wrapper
Verify
cd /tmp/hello-api
./mvnw test
What You Can Ask
Bud understands natural language and routes your request to the right approach. Here are tested prompts organized by what Bud does with them.
Known patterns (instant, no LLM code gen)
These match one of Bud’s 9 reference projects — Bud uses proven, working code directly:
| Prompt | Reference Project |
|---|
| ”create a simple spring boot app” | spring-boot-minimal |
| ”create a basic spring boot application” | spring-boot-minimal |
| ”create a greeting api” | spring-boot-rest |
| ”create a hello world rest service” | spring-boot-rest |
| ”spring boot app with actuator” | spring-boot-actuator |
| ”create an app with health checks” | spring-boot-actuator |
| ”create a batch job” | spring-boot-batch |
| ”build a CSV processing batch application” | spring-boot-batch |
| ”create a scheduled task processor” | spring-boot-scheduling |
| ”rest api with security” | spring-boot-security |
| ”create a secure web application” | spring-boot-security |
| ”create a spring boot app with JPA” | spring-boot-jpa |
| ”create a rest api without database” | spring-boot-rest |
| ”build an api with no database” | spring-boot-rest |
Domain apps (LLM-expanded with real business code)
These have specific business entities — Bud scaffolds a base project and expands it with domain models, repositories, services, and controllers:
| Prompt | Domain |
|---|
| ”build a todo api” | Todo CRUD |
| ”build a customer management system” | Customer entities |
| ”create a customer tracking system” | Customer tracking |
| ”create an inventory management api” | Inventory |
| ”build an order processing system with JPA” | Order processing |
| ”create an employee directory application” | Employee directory |
| ”build a product catalog service” | Product catalog |
| ”build a hotel reservation and booking system” | Reservations |
| ”build an e-commerce backend with payments” | E-commerce |
Edge cases (handled gracefully)
| Prompt | Behavior |
|---|
| ”spring boot management system” | Too vague — builds minimal app, no over-expansion |
| ”create a spring boot app with JPA and security” | Multi-capability — picks best match |
How It Works
When you send a message to Bud in AI Chat:
- JetBrains sends the prompt to Bud’s ACP agent over stdio
- Bud’s LLM classifier (Sonnet, running on your approved CLI) analyzes the intent — capabilities, domain entities, best-fit reference project
- The execution planner routes to the right tier:
- CACHE — matches a reference project, uses working code directly
- INITIALIZR — generates via start.spring.io (Boot 3.x, Gradle)
- EXPAND — starts from a reference project, then AI generates domain-specific code
- Tools execute deterministically — no LLM in the actual scaffolding. Your CLI is only used for classification and domain code generation.
- Results stream back through ACP to your chat window
The first prompt may take 30-60 seconds (CLI startup + classification + MCP server startup). Subsequent prompts in the same session are faster.