Atmosphere / atmosphere
The transport-agnostic real-time framework for the JVM. WebSocket, SSE, Long-Polling, gRPC, MCP — one API, any transport.
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing Atmosphere/atmosphere in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewAtmosphere The transport-agnostic real-time framework for the JVM. Build once with @Agent — stream to Web, Slack, Telegram, MCP, A2A, and any transport. --- Atmosphere was built on one idea: **your application code shouldn't care how the client is connected.** Write once, and the framework delivers to every subscriber — whether they're on a WebSocket, an SSE stream, a long-polling loop, a gRPC channel, or an MCP session. Pluggable AI streaming adapters for Spring AI, LangChain4j, Google ADK, Embabel, and any OpenAI-compatible API. — Build AI Agents That Work Everywhere One annotation. Commands, tools, skill file, and multi-channel delivery — all wired automatically: typed in the browser routes instantly to the method — deterministic, no inference cost. When and are both on the classpath, slash commands are also routed from Slack, Telegram, and other channels via the integration. Natural language falls through to and the LLM on the web console; external channels use (memory, tools, guardrails, RAG, metrics — same chain as WebSocket, minus ). **Try it now:** Open and type , , or just describe your broken tooth. To connect Slack or Telegram, create a bot and set the token as an environment variable. Multi-Channel — One Agent, Every Platform When is on the classpath, slash commands are automatically routed to all configured channels. AI responses on external channels go through the full (memory, tools, guardrails, RAG, metrics): | Channel | Activation | Commands | AI | |---------|-----------|:--------:|:--:| | Web (WebSocket) | Built-in | via | + + | | Slack | | Auto-routed | (full chain, no ) | | Telegram | | Auto-routed | (full chain, no ) | | Discord | | Auto-routed | (full chain, no ) | | WhatsApp | | Auto-routed | (full chain, no ) | | Messenger | | Auto-routed | (full chain, no ) | Skill File — System Prompt + Agent Metadata The is a markdown file that becomes the system prompt verbatim. Its sections are also parsed for protocol metadata: See spring-boot-agent-chat for a DevOps agent and spring-boot-dentist-agent for a multi-channel agent with Slack and Telegram. Under the Hood desugars to + + protocol bridges. For simpler cases without commands or channels, you can use directly: Or skip Java entirely — **zero-code AI chat:** Client — atmosphere.js Connect to any Atmosphere endpoint from any framework. Install with . Vue Svelte React Native Auto-connects on mount, streams tokens as they arrive, cleans up on unmount. See the atmosphere.js README for the full API. AI Tools — Framework-Agnostic Tools are declared with — portable across all backends: Swap the AI backend by changing one Maven dependency — no tool code changes: | Backend | Dependency | Bridged via | |---------|-----------|-------------| | Built-in (Gemini/OpenAI/Ollama/Embacle) | | direct | | Spring AI | | | | LangChain4j | | | | Google ADK | | | | Embabel | | | See spring-boot-ai-tools for the full tool-calling sample and spring-boot-ai-classroom for multi-persona conversation memory. Agent Protocols — MCP, A2A, AG-UI Three protocols for the agentic ecosystem, all riding Atmosphere's transport: | Protocol | Purpose | Sample | |----------|---------|--------| | **MCP** | Agent ↔ Tools | spring-boot-mcp-server | | **A2A** | Agent ↔ Agent | spring-boot-a2a-agent | | **AG-UI** | Agent ↔ Frontend | spring-boot-agui-chat | Real-Time Chat (Transport-Agnostic) The classic Atmosphere pattern — works with WebSocket, SSE, Long-Polling, gRPC, or any transport: Try It Now Or with npx (zero install): See cli/README.md for all commands and options. Modules **Core** — runtime (WebSocket, SSE, Long-Polling), gRPC, rooms · **Agents** — (unified annotation, , skill files), channels (Slack, Telegram, Discord, WhatsApp, Messenger) · **AI** — adapters for Spring AI, LangChain4j, ADK, Embabel, RAG · **Protocols** — MCP, A2A, AG-UI · **Cloud** — Redis, Kafka, durable sessions · **Starters** — Spring Boot, Quarkus, Kotlin · **Clients** — atmosphere.js (React, Vue, Svelte, React Native), wAsync (Java) Full module reference → Requirements Java 21+ · Spring Boot 4.0+ · Quarkus 3.21+ · JDK 21 virtual threads used by default. Documentation Tutorial · Full docs · CLI · Project generator (JBang) · Samples · Javadoc Support Need help? Commercial support and consulting available through Async-IO.org. License Apache 2.0 — @Copyright 2008-2026 Async-IO.org