Skip to content
Skillpedia
APIs & servers (backend)40k · #5320

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

https://github.com/github/awesome-copilot/blob/main/skills/quarkus-application-development/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/github/awesome-copilot/blob/main/skills/quarkus-application-development/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
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-development

Or download just the file:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/quarkus-application-development/SKILL.md -o SKILL.md
Technical 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

  1. Detect first: read pom.xml/build.gradle for quarkus.platform.version, the Java release, and the extensions already present. Keep the version; use what the project already uses (for example quarkus-resteasy* stays if present).
  2. 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 with quarkus extension list --installable --search=<text>.
  3. Ask the user before adding Kafka, OIDC/Keycloak or any new infrastructure dependency (they start containers in dev/test and change deployment needs).
  4. Never use the Spring compatibility extensions (quarkus-spring-*) unless the project already does.
  5. Verify with dev mode (./mvnw quarkus:dev, then /q/dev-ui) and ./mvnw verify; write a @QuarkusTest per feature. Do not claim something works without running it.
  6. Use jakarta.* imports, records for DTOs, thin resources delegating to services.
  7. Never hard-code secrets or add credentials to application.properties; see references/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 (@NonBlocking methods, Uni/Multi return types running on I/O threads). Remove any existing @NonBlocking from the method (combining it with @Blocking or @RunOnVirtualThread fails the build), then add @Blocking or @RunOnVirtualThread (see references/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-create schema 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

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills