Skip to content

Install & Run

Get a running Atmosphere app in seconds — no Maven, no project setup, no boilerplate.

Pick whichever package manager you already have:

Terminal window
curl -fsSL https://raw.githubusercontent.com/Atmosphere/atmosphere/main/cli/install.sh | sh

The installer checks for Java 21+, downloads the atmosphere script to /usr/local/bin, and creates ~/.atmosphere/ for caching.

Terminal window
brew install Atmosphere/tap/atmosphere
Terminal window
sdk install atmosphere

SDKMAN manages JDKs, Gradle, Maven, and now Atmosphere side-by-side. Switch versions with sdk use atmosphere <version> and list releases with sdk list atmosphere. If you haven’t installed SDKMAN yet, see sdkman.io.

No Java CLI needed — scaffold a project straight from npm:

Terminal window
npx create-atmosphere-app my-chat-app
npx create-atmosphere-app my-ai-app --template ai-chat

npx gives you atmosphere new functionality without a local install, but running samples still needs the full CLI (curl, brew, or sdk above).

Terminal window
atmosphere run spring-boot-chat

That’s it. The CLI downloads a pre-built JAR from GitHub Releases, caches it in ~/.atmosphere/cache/, and starts a WebSocket chat app on http://localhost:8080. Open it in your browser — you have a working real-time chat.

Terminal window
atmosphere run spring-boot-ai-chat --env LLM_API_KEY=your-key

This starts an AI streaming chat that connects to Gemini, GPT, Claude, or Ollama — configured via environment variables. Without an API key, it runs in demo mode with simulated streaming.

Terminal window
atmosphere install

The interactive picker shows every sample grouped by category. Pick one, then choose to run it or install its source code into your current directory:

Atmosphere Samples
CHAT
1) spring-boot-chat Real-time WebSocket chat with Spring Boot
2) quarkus-chat Real-time WebSocket chat with Quarkus
3) embedded-jetty-websocket-chat Embedded Jetty WebSocket chat (no framework)
AI
4) spring-boot-ai-chat AI streaming with conversation memory and structured events
5) spring-boot-ai-classroom Multiple clients share streaming AI responses
6) spring-boot-ai-tools Framework-agnostic @AiTool tool calling
7) spring-boot-koog-chat Kotlin-based Koog agent chat
...
Pick a sample:

If fzf is installed, you get fuzzy-search instead of numbered menus.

Terminal window
atmosphere install --tag ai # AI samples only
atmosphere install --category tools # Tool-calling samples
atmosphere list # List all samples without the picker
atmosphere info spring-boot-ai-chat # Show details about a specific sample

When you’re ready to write your own code:

Terminal window
atmosphere new my-app
atmosphere new my-ai-app --template ai-chat
atmosphere new my-rag-app --template rag

This scaffolds a complete Spring Boot + Atmosphere project with pom.xml, source code, and a frontend. Run it with ./mvnw spring-boot:run.

atmosphere new sparse-clones the matching sample from cli/samples.json and rewrites the cloned pom.xml so its parent resolves from Maven Central — the result compiles standalone with plain mvn compile.

TemplateSource sampleWhat you get
chatspring-boot-chatWebSocket chat with Broadcaster and @ManagedService
ai-chatspring-boot-ai-chat@AiEndpoint with streaming, conversation memory, configurable LLM backend
ai-toolsspring-boot-ai-tools@AiTool tool calling, approval gates
mcp-serverspring-boot-mcp-serverMCP tools, resources, and prompts
ragspring-boot-rag-chatRAG chat with Spring AI vector store + embeddings
agentspring-boot-dentist-agentSingle agent with @Agent / @Command + skill file
koogspring-boot-koog-chatJetBrains Koog runtime (Kotlin)
semantic-kernelspring-boot-semantic-kernel-chatMicrosoft Semantic Kernel runtime
multi-agentspring-boot-multi-agent-startup-team5-agent @Coordinator fleet with A2A specialists
classroomspring-boot-ai-classroomMulti-room shared AI (Spring Boot + Expo React Native client)

Pass --skill-file <path> to auto-select the agent template with your skill file wired in.

No Java CLI needed — scaffold from npm:

Terminal window
npx create-atmosphere-app my-chat-app
npx create-atmosphere-app my-ai-app --template ai-chat

create-atmosphere-app is a thin shim over the same atmosphere new CLI — it delegates to the installed binary, so the template list is always in sync.

SampleDescriptionPort
spring-boot-chatReal-time WebSocket chat with Spring Boot8080
quarkus-chatReal-time WebSocket chat with Quarkus8080
embedded-jetty-websocket-chatEmbedded Jetty, no framework8080
SampleDescriptionPort
spring-boot-ai-chatConversation memory, structured events, capability validation8080
spring-boot-ai-classroomMultiple clients share streaming AI responses8080
spring-boot-ai-toolsFramework-agnostic @AiTool tool calling8080
spring-boot-koog-chatKotlin-based Koog agent chat8080
spring-boot-rag-chatRAG with Spring AI vector store8080
SampleDescriptionPort
spring-boot-dentist-agentSingle-agent workflow with @Agent / @Command8080
spring-boot-multi-agent-startup-teamMulti-agent coordinator with @Coordinator and @Fleet8080
spring-boot-orchestration-demoOrchestration primitives (handoffs, routing, judges)8080
spring-boot-a2a-agentAgent-to-agent (A2A) protocol8080
spring-boot-checkpoint-agentAgent with checkpoint/recovery8080
SampleDescriptionPort
spring-boot-mcp-serverMCP tools, resources, and prompts for AI agents8080
spring-boot-otel-chatOpenTelemetry tracing with Jaeger8080
spring-boot-durable-sessionsSession persistence with SQLite8080
spring-boot-channels-chatChannels API for pub/sub routing8080
spring-boot-agui-chatAgUI real-time agent UI8080
grpc-chatMixed WebSocket + gRPC transport8080

Run atmosphere list for the full, current sample catalog.

All AI samples accept the same environment variables:

VariableDescriptionDefault
LLM_API_KEYAPI key for your LLM provider(none — runs in demo mode)
LLM_MODELModel namegemini-2.5-flash
LLM_BASE_URLOverride API endpoint(auto-detected from model name)
LLM_MODEremote or local (Ollama)remote

Pass them via --env:

Terminal window
atmosphere run spring-boot-ai-chat \
--env LLM_API_KEY=your-key \
--env LLM_MODEL=gpt-4o
RequirementVersionHow to install
Java21+brew install openjdk@21 or SDKMAN
fzf(optional)brew install fzf — for fuzzy-search sample picker

Once you have a running sample, you’re ready to understand the code. Start with Chapter 1: Introduction for the architecture, or jump straight to Chapter 2: Getting Started to build your first app from scratch.