java-helidon
Lets your agent use best practices with Helidon 4 in Java. It helps with routing, database, configuration, and security for modern applications.
What it does
This agent helps you write code for Helidon, a Java framework, by following best practices. It ensures your code is up-to-date with the latest version (Helidon 4) and well-organized.
When to use it
- ✓When starting a new project with Helidon 4.
- ✓When migrating an old project to Helidon 4.
- ✓When you need code examples following best practices.
Example of what to ask your AI
“How do I set up a Helidon 4 project using Maven?”
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 compares your code against the latest Helidon 4 rules, suggesting the best ways to organize your project, configure dependencies, and write code so it works well.
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 java-helidonOr download just the file:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-helidon/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Helidon Best Practices
Your goal is to help me write high-quality Helidon applications by following established best practices.
Helidon 3 → 4 API changes
Helidon 4 renamed or resignatured APIs that appear widely in their Helidon 3 form. The left column does not compile on Helidon 4. Check generated code against this table before returning it.
| Do not use (Helidon 3) | Use (Helidon 4) |
|---|---|
io.helidon.common.http.Http.Status |
io.helidon.http.Status |
io.helidon.webserver.Service |
io.helidon.webserver.http.HttpService |
Routing.Rules, update(Routing.Rules) |
HttpRules, routing(HttpRules) |
request.path().param("id") |
request.path().pathParameters().get("id") |
String s = column.as(String.class) |
column.getString() or column.get(String.class) |
dbClient.execute(exec -> ...) returning Single/Multi |
dbClient.execute() returning Optional<DbRow> / Stream<DbRow> |
javax.* |
jakarta.* |
helidon-microprofile-tests-junit5 |
helidon-microprofile-testing-junit5 |
Value.as(Class) in Helidon 4 returns OptionalValue<T>, not T. This is the single
most common Helidon 4 compile error in generated code.
Project Setup & Structure
- Programming Model: Determine whether the project uses Helidon SE or Helidon MP before generating code. Do not mix the two programming models unless explicitly required.
- Java Version: Use Java 21 or later for Helidon 4 applications.
- Build Tool: Use Maven (
pom.xml) or Gradle (build.gradle) for dependency management. - Dependency Management: Use the Helidon BOM or platform to keep Helidon module versions aligned.
- Package Structure: Organize code by feature or domain, such as
com.example.app.orderandcom.example.app.customer, rather than only by technical layer.
Helidon SE
- Explicit Composition: Construct services and dependencies explicitly in the application bootstrap layer.
- Constructor Injection: Pass required dependencies through constructors and declare dependency fields as
private final. - HTTP Services: Group related routes in focused
HttpServiceimplementations. - Business Logic: Keep business logic outside route handlers.
- Virtual Threads: Prefer straightforward blocking code with Helidon 4 virtual-thread-based request handling. Do not introduce reactive complexity without a clear reason. Helidon 4 is not reactive; do not generate
Single,Multi, orCompletionStagechains.
Helidon MP
- Jakarta and MicroProfile: Prefer standard Jakarta EE and Eclipse MicroProfile APIs when available.
- Dependency Injection: Use CDI with constructor injection for required dependencies.
- Bean Scopes: Use CDI scopes such as
@ApplicationScopedand@RequestScopedintentionally. - Normal-Scoped Beans: Add a non-private no-argument constructor to normal-scoped beans that use constructor injection, so the CDI client proxy can be created portably.
- Business Logic: Keep Jakarta REST resource classes thin and delegate business operations to service classes.
- Portability: Prefer portable Jakarta and MicroProfile APIs over Helidon-specific APIs when portability is important.
Configuration
- Externalized Configuration: Store non-secret configuration in
application.yamlorapplication.properties. - Helidon SE Configuration: Use Helidon Config and pass configuration values or typed configuration objects to components.
- Helidon MP Configuration: Use MicroProfile Config for injected application settings.
- Environment Overrides: Use environment variables or deployment-specific configuration sources for environment-dependent values.
- Secrets Management: Never hardcode credentials, API keys, tokens, or private certificates.
Web Layer
…
FAQ
What's the difference between Helidon SE and Helidon MP?
Helidon SE (Standard Edition) is more basic and flexible, while Helidon MP (MicroProfile) uses more established standards like CDI and JAX-RS for building applications.
Why is it important to use Helidon 4 APIs?
Helidon 4 APIs have been updated to be more efficient and secure. Using them avoids common errors and ensures compatibility with new versions.
What are 'best practices'?
These are the recommended and most efficient ways to write code, making the program easier to understand, maintain, and less prone to errors.
Details
Original description by the author
Get best practices for developing applications with Helidon 4 (SE and MP). Use when working with Helidon SE or Helidon MP, HttpService routing, Helidon DB Client, MicroProfile Config, Helidon Security, or Helidon testing in Java 21+ projects.
repo: github/awesome-copilot
Popularity
- GitHub stars
- 40k
- Ranking position
- #5198
- 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