quarkus-application-development
Helps your agent write code for Quarkus applications. It's useful for creating web services, connecting to databases, and managing tasks.
What it does
This agent helps write code for Quarkus applications. It can add features like REST APIs, database access, security, and communication with other applications, while maintaining consistency with the existing project.
When to use it
- ✓Adding a new feature to a Quarkus project.
- ✓Modifying an existing part of a Quarkus application.
- ✓Integrating a new service or feature into a Quarkus application.
Example of what to ask your AI
“Add a REST API to manage users with validation and automatic documentation.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
It analyzes your Quarkus project to understand which technologies are already in use. Then, it adds the necessary extensions and writes the code following Quarkus best practices.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add github/awesome-copilot --skill quarkus-application-developmentOr download just the file:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/quarkus-application-development/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Quarkus Application Development
Scope: application code inside an existing Quarkus project. Project creation is create-quarkus-project; Dev Services and tests are quarkus-dev-services-and-testing; native and container images are quarkus-native-and-container; core JPA mapping and query design can use the optional java-hibernate-jpa skill if installed (otherwise see the Hibernate ORM guide, https://quarkus.io/guides/hibernate-orm, and the Jakarta Persistence docs).
Agent rules
- Detect first: read
pom.xml/build.gradleforquarkus.platform.version, the Java release, and the extensions already present. Keep the version; use what the project already uses (for examplequarkus-resteasy*stays if present). - Add extensions with
quarkus extension add <name>or./mvnw quarkus:add-extension -Dextensions=<name>; never guess artifact ids or versions by hand (the platform BOM manages them). List candidates withquarkus extension list --installable --search=<text>. - Ask the user before adding Kafka, OIDC/Keycloak or any new infrastructure dependency (they start containers in dev/test and change deployment needs).
- Never use the Spring compatibility extensions (
quarkus-spring-*) unless the project already does. - Verify with dev mode (
./mvnw quarkus:dev, then/q/dev-ui) and./mvnw verify; write a@QuarkusTestper feature. Do not claim something works without running it. - Use
jakarta.*imports, records for DTOs, thin resources delegating to services. - Never hard-code secrets or add credentials to
application.properties; seereferences/config-cdi.md.
Quick decisions
| Need | Use | Details |
|---|---|---|
| JSON REST API | quarkus-rest-jackson, quarkus-hibernate-validator, quarkus-smallrye-openapi |
references/rest.md |
| Typed config | @ConfigMapping; @ConfigProperty for single values |
references/config-cdi.md |
| Beans | @ApplicationScoped (default), @Singleton only for plain stateless holders |
references/config-cdi.md |
| Database | quarkus-hibernate-orm-panache + JDBC driver, repository pattern |
references/persistence.md |
| Async / blocking | Imperative by default; @RunOnVirtualThread or Uni when needed |
references/reactive-messaging.md |
| Messaging | quarkus-messaging-kafka (SmallRye Reactive Messaging) |
references/reactive-messaging.md |
| AuthN/AuthZ | quarkus-oidc, @RolesAllowed |
references/security-oidc.md |
| Ops | quarkus-smallrye-health, quarkus-micrometer-registry-prometheus, quarkus-opentelemetry, quarkus-smallrye-fault-tolerance |
references/observability-resilience.md |
| Outbound HTTP, scheduling, caching | quarkus-rest-client-jackson, quarkus-scheduler, quarkus-cache |
references/observability-resilience.md |
Pitfalls that cost time
- Quarkus resolves CDI at build time: an unused bean may be removed. Beans only looked up programmatically need
@Unremovable. - Do not read or write public fields of a normal-scoped bean (
@ApplicationScoped) from another bean or test: you hit the client proxy, not the instance (verified: a counter field read through the proxy returned 0). Use methods. - Do not block on the event loop (
@NonBlockingmethods,Uni/Multireturn types running on I/O threads). Remove any existing@NonBlockingfrom the method (combining it with@Blockingor@RunOnVirtualThreadfails the build), then add@Blockingor@RunOnVirtualThread(seereferences/reactive-messaging.md). - Changes to build-time properties need a rebuild; run-time properties can be overridden by env vars (
QUARKUS_DATASOURCE_JDBC_URL). - Do not configure URLs for databases/brokers/Keycloak in
%dev/%test: that disables Dev Services. drop-and-createschema management is for dev/test only; use Flyway or Liquibase for production.
Verified on Quarkus 3.40.1 and 3.27.6 (Java 21 target, Maven) with a scaffolded app and mvn verify (15 tests: REST+validation+mapper, OpenAPI, config mapping, Panache on PostgreSQL Dev Services, Kafka Dev Service round trip, Keycloak Dev Service tokens, health, metrics, fault tolerance, cache, scheduler). Re-check names against the project's version.
FAQ
What are Quarkus 'extensions'?
Extensions are packages that add specific functionalities to your Quarkus application, such as database support, web APIs, or messaging.
How does the agent know which Quarkus version to use?
It checks your project's configuration file (pom.xml or build.gradle) to use the same Quarkus version that is already defined.
Can the agent create a new Quarkus project?
No, this agent is for working on existing Quarkus projects. To create a new project, you would use another tool or specific command.
Details
Original description by the author
Write Quarkus application code: REST with Quarkus REST, validation, exception mappers, OpenAPI, configuration, CDI (ArC), Hibernate ORM with Panache, Mutiny and virtual threads, Reactive Messaging with Kafka, OIDC security, health, metrics, OpenTelemetry, fault tolerance, REST Client, scheduler and cache. Use when implementing or changing features in an existing Quarkus project.
repo: github/awesome-copilot
Popularity
- GitHub stars
- 40k
- Ranking position
- #5320
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
acquire-codebase-knowledge
Helps your agent understand and document an existing code project. It's useful for onboarding new people or getting an overview of the architecture.
github/awesome-copilot
acreadiness-assess
Enables your agent to assess a project's readiness for AI and generate a report. It's useful for understanding how well a project is prepared to use AI tools.
github/awesome-copilot
acreadiness-generate-instructions
Helps your agent create instructions for AI tools based on an assessment. It's useful for improving how AI interacts with code and closing identified gaps.
github/awesome-copilot
acreadiness-policy
Enables your agent to help define or apply policies for AI project assessment. It's useful for standardizing how projects are evaluated and ensuring compliance.
github/awesome-copilot
Similar skills
api-connector-builder
Has your agent build new API connections following the existing pattern. Use when you need to add one more integration without creating a new way of doing things.
affaan-m/ECC
api-design
Helps your agent design REST APIs following best practices. It's useful for defining how APIs communicate, how errors are shown, and how to organize data.
affaan-m/ECC
backend-patterns
Helps your agent with server-side architecture patterns and database optimization. It's useful for building or reviewing code that runs on the server.
affaan-m/ECC