English Β | Β δΈζ
Java annotations Β· Spring Boot 3 Β· zero front-end Β· 2β5s startup
- One class file = a full admin page. Zero controllers, zero front-end build, zero scaffolding.
- Lightning startup. 2β5 seconds to a running admin UI on Java 17 + Spring Boot 3.x.
- 20+ field components out of the box: date, slider, tree, code editor, reference table, autocomplete, map, signature, Markdownβ¦
- Built-in RBAC, audit logs, Excel import/export, OpenAPI β every
@Eruptentity is automatically a permission-aware REST endpoint. - AI-Native. 50+ LLM providers, MCP-native tools, 700k+ skills, all configurable from the admin UI.
- Multi-database. JPA by default (MySQL Β· PostgreSQL Β· Oracle Β· SQL Server Β· DM); MongoDB via
erupt-mongodb. - Production-ready ecosystem.
erupt-cloudfor distributed config; commercial Chart / Flow / Tenant / Cube modules cover reporting, workflow, multi-tenant SaaS, and semantic-layer BI.
quackstart.mp4
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-admin</artifactId>
<version>${erupt.version}</version>
</dependency>
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-web</artifactId>
<version>${erupt.version}</version>
</dependency>@Erupt(name = "User")
@Entity
public class User extends BaseModel {
@EruptField(
views = @View(title = "Name"),
edit = @Edit(title = "Name", search = @Search)
)
private String name;
}mvn spring-boot:run
# β http://localhost:8080 login: erupt / eruptYou now have a paged, searchable, exportable admin page with role-based permissions β backed by the table behind User. Add a field, refresh, it shows up.
Don't want to clone? Try demo.erupt.xyz (
guest / guest). Want a starter project? start.erupt.xyz generates one in your browser. Prefer to run from source? Clone this repo and runEruptSampleApplicationin theerupt-samplemodule β bundled H2 database, no extra config required. Need the full walkthrough? Detailed setup guide β
π¦ Show me a richer example β sliders, choice fields, custom actions, LambdaQuery
@Erupt(
name = "Simple",
power = @Power(importable = true, export = true),
rowOperation = @RowOperation(
title = "Custom Action",
mode = RowOperation.Mode.SINGLE,
operationHandler = OperationHandlerImpl.class
)
)
@Table(name = "t_simple")
@Entity
public class Simple extends BaseModel {
@EruptField(
views = @View(title = "Text"),
edit = @Edit(title = "Text", notNull = true, search = @Search)
)
private String input;
@EruptField(
views = @View(title = "Date"),
edit = @Edit(title = "Date", search = @Search(vague = true))
)
private Date date;
@EruptField(
views = @View(title = "Slider"),
edit = @Edit(title = "Slider", type = EditType.SLIDER, search = @Search,
sliderType = @SliderType(max = 90, markPoints = {0, 30, 60, 90}, dots = true))
)
private Integer slide;
@EruptField(
views = @View(title = "Choice"),
edit = @Edit(title = "Choice", type = EditType.CHOICE, search = @Search,
choiceType = @ChoiceType(
fetchHandler = SqlChoiceFetchHandler.class,
fetchHandlerParams = "select id, name from e_upms_menu"
))
)
private Long choice;
}Type-safe queries with LambdaQuery:
List<EruptUser> list = eruptDao.lambdaQuery(EruptUser.class)
.like(EruptUser::getName, "e")
.isNull(EruptUser::getWhiteIp)
.in(EruptUser::getId, 1, 2, 3, 4)
.ge(EruptUser::getCreateTime, "2023-01-01")
.list();More scenarios: erupt.xyz/#!/contrast
|
π§± UI generation
Tables, forms, search, pagination, tree views, Gantt charts, card views, 20+ field components β all driven by π Permissions (UPMS)
Users, roles, menus, row-level filters, column-level visibility. SpEL expressions on π OpenAPI exposure
Every ποΈ Multi-database
JPA by default (MySQL Β· PostgreSQL Β· Oracle Β· SQL Server Β· DM β¦); MongoDB via |
π Excel import & export
Built-in via π΄ AI Harness ( π¦ AI Claw ( βοΈ Cluster & multi-tenant
|
Full module catalog: erupt.xyz/#!/module Β Β·Β API reference: javadoc.erupt.xyz
erupt-aiis the AI Harness for Spring Boot: 50+ LLM providers Β· MCP-native tools Β· built-in RBAC Β· role-aware system prompts Β· chat history β all configurable through the admin UI, zero boilerplate.
Why "Harness"? Shipping AI to production needs more than an SDK β it needs governance (RBAC), interoperability (MCP), observability (chat history + token tracking), and operator-friendly config (admin UI). Erupt AI Harness gives all four out of the box.
OpenAI Β· Claude Β· Gemini Β· DeepSeek Β· Qwen Β· GLM Β· Doubao Β· Moonshot Β· MiniMax Β· Mistral Β· Grok Β· Fireworks Β· Together Β· OpenRouter Β· Ollama (self-hosted) β hot-swappable from the admin UI, 50+ in total.
- Multi-provider switching β configure multiple LLMs via UI, switch without code changes
- Streaming chat (SSE) β real-time token-by-token responses with configurable timeouts
- Thinking models β native support for reasoning models (DeepSeek, Kimi-K2)
- MCP protocol β connect any MCP-compatible tool server (SSE & STDIO transports), auto-reconnect health checks
- A2A protocol (Agent-to-Agent) β agents call other agents through the standardized A2A protocol; multi-agent workflows out of the box
- AI Toolbox β expose any Spring Bean as an AI tool via
@AiToolbox+@Toolannotations - Tool security Β· dynamic Role control β every AI tool is gated by
LLMRole; whitelist or revoke per role at runtime, no restart - Agentic AI framework β define agents with custom system prompts, hint lists, dynamic prompt handlers, MCP tool integration
- Chat history β per-user conversation sessions with token tracking and soft-delete
- Long-term memory β cross-session memory persistence; AI automatically stores key decisions and context, reloaded next session
@AiToolbox
@Component
public class MyTools {
@Tool("Look up order status by order ID")
public String getOrderStatus(String orderId) {
return orderService.getStatus(orderId);
}
}LLM providers, MCP servers, and agents are all managed through the built-in admin UI β no restarts required.
Drive your server through natural language β just like talking to a colleague.
Erupt AI Claw lets you control annotation-driven data & business logic, execute shell commands, read/write files, and extend custom Skills β all through conversational AI.
- Erupt model operations β query, create, update data across any
@Eruptentity via chat - Shell execution β run system commands directly through natural language
- File I/O β read and write files on the server
- Browser control β interact with the browser via MCP configuration
- Skills (700k+) β compatible with 700k+ skills from skills.sh; AI auto-matches and executes the right skill; supports dynamic skill creation
Claw shares the same Role-based Tool security as AI Harness β only whitelisted tools are exposed to non-admin users. Skills are stored in ~/.erupt/skills/ and can also be created dynamically through chat.
erupt-cloudbrings the annotation-driven admin experience to distributed Spring Boot deployments β centralized config, service topology, and per-node admin UIs, all under the same@Eruptmodel.
erupt-cloud-serverβ central console for cluster-wide config and node managementerupt-cloud-nodeβ drop-in dependency each service uses to register itself and pull config
- Multi-dimensional config center β centrally maintain config schemas, nodes, and rollout policies; instances sync on demand
- Light dependencies β minimal intrusion into your Spring Boot / microservices stack; versions stay aligned with the main Erupt release train
- Nodes & topology β visualize cluster topology, call graphs, and config rollouts in a single console
- In-cluster admin UIs β every business service can host its own Erupt admin without rebuilding scaffolding per subsystem
- Audit-friendly β every config change leaves a trace; finer-grained rollback than version-level rollback
β Erupt Cloud docs Β Β·Β erupt.xyz/#!/cloud
π Core modules are permanently free and open source β
erupt-core/erupt-annotation/erupt-web/erupt-jpa/erupt-upms/erupt-aiand other core modules are licensed under Apache 2.0 forever β no License restrictions Β· no project-count limits Β· no commercial restrictions (see the governance commitment β). The commercial modules below are optional enterprise extensions that evolve independently from the open-source core.
Beyond the open-source core, 4 enterprise-grade modules are available β source-code delivery Β· one-time purchase Β· no License / project-count / commercial restrictions:
| Module | Use case | Documentation |
|---|---|---|
| Erupt Chart | Reports & data visualization | π Docs |
| Erupt Flow | Workflow / approval engine | π Docs |
| Erupt SaaS | Multi-tenant infrastructure | π Docs |
| Erupt Cube | BI platform with semantic layer | π Docs |
Source-code delivery Β· one-time purchase Β· perpetual use Β· evolves independently from the open-source core.
π See pricing and purchase process β
Erupt is a free and open-source project. We welcome anyone to contribute β submitting code, reporting bugs, sharing ideas, or sharing your use cases. Blog posts and social-media coverage are equally welcome.
To contribute code, please read our contribution guidelines first, then open an Issue or Pull Request on GitHub.
Thanks to the following contributors:
β If Erupt saves you time, please star us on GitHub β it really helps the project grow.
Erupt is licensed under Apache 2.0 β free, open source, commercial use permitted, fork-friendly.
Author: YuePeng Β Β·Β erupts@126.com