Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Quarkus StudioNew to Visual Studio Code? Get it now.
Quarkus Studio

Quarkus Studio

Maratib Ali Khan

|
2 installs
| (0) | Free
Advanced developer productivity suite for Quarkus
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Developer Productivity Suite for Quarkus

Quarkus Studio supercharges your Quarkus workflow inside Visual Studio Code. Designed for both single-module and complex multi-module enterprise architectures, Quarkus Studio brings real-time Dev Mode orchestration, intelligent Dev Services container management, dynamic port resolution, and direct access to developer tools right from the Activity Bar.

I have furnished a detailed learning resource at : quarkus-studio.github.io

Context Viewer

✨ Features

Project Builder

Title Description
Create Multi Module Project Scaffolds enterprise multi-module Quarkus project with Maven/Gradle parent, common library, microservices, and Docker Compose stack.
Create Single Module Project Scaffolds standard single-module Quarkus Maven/Gradle application with extension selector.
Add New Module Adds a new microservice or shared library module to an existing workspace under project root, assigns dev port, and updates parent build file.
Add Starters Adds curated technology starter packs (Web API, PostgreSQL Panache, Kafka, OIDC) and configures application.properties.
Add Quarkus Extension Interactive extension selector with smart recommendations, search, and safe injection into pom.xml or build.gradle.

1. 📂 Apps View

Gain complete visibility and control over single-module and multi-module Quarkus workspaces directly in the Quarkus Studio sidebar.

  • Single & Multi-Module Workspace Detection: Automatically identifies Maven root POMs (<modules>) and Gradle settings.gradle / settings.gradle.kts configurations, mapping submodules hierarchically.
  • Accurate Submodule Naming: Accurately resolves individual child module artifactIds in multi-module POMs (bypassing parent <parent><artifactId> ambiguities).
  • Service Status & Play Icons:
    • Clean, dedicated play icons for every runnable Quarkus app:
      • Stopped: Outline play icon (ThemeIcon('play')) with inline Start Dev Mode action.
      • Running: Solid filled green play icon (ThemeIcon('debug-start')) with inline Stop, Restart, View Logs, and Open Dev UI actions.
  • One-Click Dev Mode Lifecycle: Start, stop, and restart Dev Mode (./mvnw compile quarkus:dev, ./gradlew quarkusDev) per service with a dedicated integrated terminal.
  • Dynamic Dev UI Launcher: Reads quarkus.http.port from application.properties (e.g. port 8081) to automatically route the Open Dev UI action to the exact running endpoint (e.g. http://localhost:8081/q/dev-ui), falling back to http://localhost:8080/q/dev-ui.
  • Endpoints Explorer: Automatically discovers all REST endpoints (@Path, @GET, @POST, @PUT, @DELETE, @PATCH, and Spring Web mappings) in Java and Kotlin source files under an Endpoints tree node:
    • Jump to Source: Click any endpoint to jump directly to the handler method in the editor.
    • Method Badges: Color-coded HTTP verbs (GET, POST, PUT, DELETE, PATCH).
    • Inline Actions: One-click to Open in Browser, Copy Endpoint URL, or Copy Endpoint Path.
    • Generate Postman Collections: Right-click the Endpoints node to export all detected REST endpoints into a Postman Collection v2.1.0 JSON file (AppName-<date>.postman_collection.json) under the project root/postman folder with folder grouping by resource class, path variables, request headers, bodies, and configurable baseUrl.
    • Live Sync: Watches **/*.{java,kt} to refresh endpoints dynamically as you write code.
  • Clean Tree Presentation: Focused, uncluttered view displaying configuration files (application.properties / application.yaml) and build files (pom.xml, build.gradle) with instant click-to-open access.

2. 🐳 Dev Services Visualizer

Effortlessly monitor, manage, and connect to background Quarkus Dev Services and active container dependencies.

  • Docker & Podman Support: Seamless compatibility with both Docker Desktop and Podman, with auto-detection or manual runtime configuration (quarkusStudio.containerRuntime).
  • Comprehensive Service Recognition: Automatically detects and categorizes containers for:
    • Databases: PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, MongoDB.
    • Brokers & Messaging: Apache Kafka, RabbitMQ.
    • Caches & Storage: Redis, OpenSearch, Elasticsearch.
    • Security & Identity: Keycloak, HashiCorp Vault.
    • Testing & Emulation: LocalStack, WireMock, Mailpit.
  • Smart Container Filtering: Intelligently surfaces active service and database containers while filtering out maintenance sidecars (such as testcontainers/ryuk) and proxy gateways.
  • One-Click Container Control: Stop, restart, or inspect individual containers directly from the sidebar.
  • Live Container Logs: Stream real-time container output (docker logs -f) into dedicated VS Code output channels with auto-scroll.
  • One-Click Connection String Copy: Copy ready-to-use connection strings and JDBC URLs to your clipboard:
    • jdbc:postgresql://localhost:<port>/quarkus
    • jdbc:mysql://localhost:<port>/quarkus
    • redis://localhost:<port>
    • localhost:<port> (Kafka Bootstrap Servers)
    • amqp://guest:guest@localhost:<port>
  • Web Console Launcher: Launch web management interfaces (Keycloak Admin Console, Mailpit Web UI, RabbitMQ Management) in your default browser with a single click.
  • Quick Dev Mode Bootstrap: Launch Quarkus Dev Mode from the Dev Services view header to immediately provision missing containers.

3. ⚙️ Smart application.properties Config Assistant

Supercharge Quarkus configuration with in-editor intelligence, build-time safety checks, and real-time cloud deployment cost estimates.

  • code.quarkus.io Integration & Catalog:
    • Directly synchronizes with the code.quarkus.io extension registry (/api/extensions) to discover extension metadata, guides, and custom configuration keys.
    • Bundles a high-performance offline catalog covering Quarkus Core, Hibernate ORM, RESTEasy Reactive, Agroal Datasource, Redis, Kafka, OIDC, Security, Virtual Threads, and Cloud/Serverless extensions.
    • Automatically analyzes project dependencies (pom.xml / build.gradle) to prioritize configurations for installed extensions.
    • Command: Quarkus Studio: Reload Config Metadata (quarkus-studio.configAssistant.reload).
  • Contextual & Profile-Aware Autocompletion:
    • Full property key completion with Markdown documentation, phase tags ([🔒 Build Time] vs [⚙️ Runtime]), default values, and types.
    • Seamless support for environment profiles: %dev., %test., %prod., %staging..
    • Value autocompletion after = for enums (e.g. postgresql, mysql, fast-jar, native) and boolean flags (true, false).
  • Build-Time Fixed Property Diagnostics & Quick-Fixes:
    • In Quarkus, properties marked as build-time fixed (e.g. quarkus.package.type, quarkus.datasource.db-kind, quarkus.hibernate-orm.database.generation) cannot be dynamically modified at runtime.
    • Flags invalid runtime overrides (such as %prod.quarkus.datasource.db-kind=...) with clear in-editor diagnostic warnings.
    • One-click Quick Fix (Remove '%prod.' prefix) to safely configure properties globally for the build phase.
  • Inline Cloud Cost & Resource Footprint Estimates:
    • Inlay Hints: Displays live memory, cold start, and serverless pricing badges directly in application.properties:
      • quarkus.package.type=native ➔ 💡 [Cloud Est: ~32MB RSS | Cold start <25ms | Lambda: ~$0.25/1M]
      • quarkus.package.type=fast-jar ➔ 💡 [Cloud Est: ~192MB RSS | Cold start ~1.5s | Lambda: ~$0.83/1M]
      • quarkus.virtual-threads.enabled=true ➔ 💡 [Loom: ~90% lower thread memory per req]
      • quarkus.datasource.jdbc.max-size=25 ➔ 💡 [Pool Buffer: ~50MB RAM | 25 conns]
    • Rich Hover Tooltips: Hover over any property to inspect detailed comparison tables comparing GraalVM Native vs OpenJDK JVM footprints, AWS Lambda invocation costs, Google Cloud Run pay-per-use, and Kubernetes pod density.
    • Full Cloud Report: Run Quarkus Studio: Show Cloud Cost & Resource Estimates (quarkus-studio.configAssistant.showCostEstimates) to output a comprehensive deployment sizing report.

4. ⚡ Panache Entity & DTO Generator

Instantly generate production-grade Hibernate with Panache or MongoDB with Panache entities, Java 17+ Record DTOs, companion repositories, and full CRUD REST endpoints with a single right-click or command.

  • Multiple Input Sources:
    • Contextual Right-Click Menus: Right-click any Java package folder, .java file, .json payload, or .sql / .ddl migration script in the Explorer or active editor.
    • Interactive Wizard: Prompts for entity name, field definitions (name:String, price:BigDecimal, inStock:Boolean), and architecture preferences.
    • JSON Payload Inference: Automatically infers Java types from JSON samples (e.g. integer vs decimal/BigDecimal, ISO dates to LocalDate/LocalDateTime, UUIDs, booleans, and arrays).
    • SQL / DDL Schema Parser: Parses CREATE TABLE DDL statements, maps SQL types (VARCHAR, BIGSERIAL, DECIMAL, TIMESTAMP, BOOLEAN) to Java types, extracts primary keys, and converts snake_case columns to camelCase properties with @Column(name = "...") and @Table(name = "...").
  • Flexible Architectural Patterns:
    • Active Record Pattern (Recommended for Quarkus):
      • Extends PanacheEntity (with inherited public Long id;) or PanacheEntityBase (for custom UUID / String IDs).
      • Public fields enhanced at build-time with idiomatic Quarkus bytecode transformation.
      • Generates static finder helper methods (e.g. findByName(String name)).
    • Repository Pattern (DDD / Clean Architecture):
      • Generates standard @Entity class with primary key annotations.
      • Generates companion @ApplicationScoped repository implementing PanacheRepository<Entity> with custom query helpers.
  • Dual Persistence Backends:
    • Hibernate ORM with Panache: Tailored for PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, and H2 with @Entity, @Table, @Column, and @Transactional.
    • MongoDB with Panache: Generates @MongoEntity(collection = "..."), ObjectId ID mappings, and PanacheMongoEntity / PanacheMongoRepository.
  • Modern Java 17+ Record DTOs:
    • Generates immutable Java record DTOs for safe API transport.
    • Includes bidirectional conversion helper methods:
      • fromEntity(Entity entity): Static factory mapping entity to DTO.
      • toEntity(): Instantiates and maps DTO to fresh entity.
      • updateEntity(Entity entity): Applies DTO mutation to existing managed entity.
  • Complete JAX-RS / Quarkus REST CRUD Endpoints:
    • Automatically scaffolds REST resources under @Path("/api/<entities>") with @Produces and @Consumes(MediaType.APPLICATION_JSON):
      • GET /api/<entities>: Returns full list mapped to DTOs.
      • GET /api/<entities>/{id}: Returns 200 OK or 404 Not Found.
      • POST /api/<entities>: @Transactional create endpoint returning 201 Created with Location header.
      • PUT /api/<entities>/{id}: @Transactional update endpoint returning 200 OK or 404 Not Found.
      • DELETE /api/<entities>/{id}: @Transactional delete endpoint returning 204 No Content.
  • Automatic Package & Directory Resolution:
    • Automatically identifies src/main/java root and derives the appropriate Java package name.
    • Creates files directly in the target directory and immediately opens the generated entity in the editor.

5. 🧪 Live Testing & Continuous Feedback HUD

Supercharge test-driven development with deep Quarkus Continuous Testing integration, real-time code gutter indicators, instant rerun of failed tests on save, and interactive test profile switching.

  • Seamless Continuous Testing Integration:
    • Automatically interfaces with Quarkus Dev Mode's continuous testing engine.
    • Sends direct keystrokes to active Dev Mode terminals (r to rerun all, f to rerun failed, p to pause, t to toggle, o to view output).
    • Listens to Surefire, Failsafe, and Gradle JUnit XML reports in real-time to synchronize test state instantly without manual terminal switching.
  • In-Editor Code Gutter Indicators:
    • 🟢 Passing Tests: Clean green check indicator beside passing @Test and @ParameterizedTest methods.
    • 🔴 Failing Tests: High-visibility red error indicator in the editor gutter for failing test methods.
    • ⚪ Skipped & 🔄 Running Indicators: Real-time indicators showing skipped or currently executing tests.
    • Rich Markdown Failure Tooltips: Hover over any failing test gutter icon to inspect execution duration, failure messages, and complete Java stack traces directly in the editor.
  • Instant Failed Test Rerun on Save:
    • Automatically triggers a rapid re-run of failed tests (f) as soon as you save any .java or configuration file (application.properties).
    • If a test class (*Test.java) is saved, immediately targets and executes tests in that class.
    • Configurable via quarkusStudio.continuousTesting.rerunOnSave.
  • Continuous Feedback HUD in Status Bar:
    • Live status item in the VS Code status bar:
      • $(pass-filled) Quarkus Tests: 12 passed
      • $(error) Quarkus Tests: 2 failed (10 passed)
      • $(sync~spin) Quarkus Tests: running...
      • $(debug-pause) Quarkus Tests: paused
    • Click-to-Action Quick Menu: Click the status bar HUD to instantly rerun all tests, rerun failed tests, pause/resume testing, switch test profiles, or jump to the test terminal.
  • Interactive Test Profile Swapper (@TestProfile):
    • Automatically scans your workspace for classes implementing io.quarkus.test.junit.QuarkusTestProfile.
    • Open any test class and trigger Switch Test Profile (@TestProfile):
      • Select from all discovered test profiles in your workspace.
      • Automatically updates or inserts @TestProfile(MyProfile.class) onto the test class.
      • Automatically manages package imports (import io.quarkus.test.junit.TestProfile;).
      • Option to Remove @TestProfile to revert to default configuration.
      • Option to Create New QuarkusTestProfile... to scaffold a custom test profile class with getConfigOverrides() and imports.
  • Sidebar Continuous Testing Tree View:
    • Dedicated Continuous Testing tree view under the Quarkus Studio activity bar container.
    • Displays overall test suite execution state, active @TestProfile, and hierarchical view of test classes and test methods.
    • Color-coded icons, execution duration badges, and full failure tooltips on test case nodes.
    • Jump to Source: Click any test method in the tree to jump directly to its definition in the Java editor.
    • Inline Action Buttons: Header actions to Rerun All Tests, Rerun Failed Tests, Toggle/Pause Continuous Testing, Switch Test Profile, and Refresh.
  • In-Editor CodeLens Actions:
    • ▶ Run Test: Execute any single test method directly above its declaration.
    • ❌ Rerun Failed (<time>ms): Highlights failed tests with direct one-click rerun.
    • ▶ Run Tests in <Class> & 🏷 Profile: ...: Class-level CodeLens to execute all tests in class or swap test profile.

6. ✂️ Quarkus Studio Snippets (qs-)

Boost your daily Quarkus development speed with a curated, comprehensive collection of context-aware snippets for configuration files and Java source code. All snippets share the uniform qs- prefix—simply type qs or qs- in any supported file to view immediate suggestions.

  • Language-Specific Scoping:
    • application.properties: Ready-to-use blocks for PostgreSQL/MySQL/Oracle datasources, Reactive Vert.x clients, Hibernate ORM, MongoDB, Redis, Kafka Reactive Messaging, OIDC/Keycloak, OpenAPI/Swagger UI, GraalVM Native flags, and profile overrides (%dev, %prod, %test).
    • application.yaml: Full Quarkus hierarchical YAML configuration templates.
    • Java (*.java):
      • Full File Scaffolding: Panache Active Record entities (extends PanacheEntity), standard JPA entities, Panache repositories (PanacheRepository<T>), MongoDB Panache entities/repositories, complete JAX-RS CRUD resources with pagination and validation, Java 17+ Record DTOs, custom Bean Validation constraints, @QuarkusTest suites, @TestProfile implementations, scheduled jobs, startup/shutdown observers, and Kafka reactive messaging consumers/producers.
      • Quarkus & CDI Annotations: @Transactional, @ApplicationScoped, @Blocking, @NonBlocking, @RunOnVirtualThread (Loom), @RolesAllowed, @Fallback, @Retry, @CircuitBreaker, @ConfigProperty, and more.
      • REST Endpoints: @GET, @POST, @PUT, @DELETE, @PATCH, and Server-Sent Events (SSE) stream methods.
      • Panache Operations: Quick expressions for listAll(), findByIdOptional(), parameterized find(), persist(), deleteById(), count(), and bulk updates.
      • Bean Validation: Inline constraint annotations (@NotBlank, @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @Valid).
      • Common Dev Patterns & Logging: Fast static logging via io.quarkus.logging.Log (qs:log-info, qs:log-error, qs:log-warn, qs:log-debug), programmatic JTA transactions (qs:tx-run), Mutiny reactive streams, and try-catch error blocks.

✂️ Quarkus Studio Snippets Reference

All snippets use the prefix qs- (Quarkus Studio). Type qs in your editor to trigger IntelliSense.

1. ⚙️ application.properties Snippets

Prefix Description Example Generated Content
qs-http HTTP server port, root path, and CORS quarkus.http.port=8080
quarkus.http.cors=true
quarkus.http.cors.origins=http://localhost:3000...
qs-datasource-pg PostgreSQL JDBC datasource & Agroal pool quarkus.datasource.db-kind=postgresql
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/...
qs-datasource-reactive-pg PostgreSQL Reactive datasource (Vert.x SQL) quarkus.datasource.db-kind=postgresql
quarkus.datasource.reactive.url=postgresql://localhost:5432/...
qs-datasource-mysql MySQL JDBC datasource & credentials quarkus.datasource.db-kind=mysql
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/...
qs-datasource-mariadb MariaDB JDBC datasource & credentials quarkus.datasource.db-kind=mariadb
quarkus.datasource.jdbc.url=jdbc:mariadb://localhost:3306/...
qs-datasource-oracle Oracle JDBC datasource configuration quarkus.datasource.db-kind=oracle
quarkus.datasource.jdbc.url=jdbc:oracle:thin:@localhost:1521/...
qs-datasource-mssql MS SQL Server JDBC datasource quarkus.datasource.db-kind=mssql
quarkus.datasource.jdbc.url=jdbc:sqlserver://localhost:1433;...
qs-hibernate Hibernate ORM generation & SQL logging quarkus.hibernate-orm.database.generation=drop-and-create
quarkus.hibernate-orm.log.sql=true
qs-flyway Flyway database migrations configuration quarkus.flyway.migrate-at-start=true
quarkus.flyway.locations=db/migration
qs-mongodb MongoDB client connection & database quarkus.mongodb.connection-string=mongodb://localhost:27017
quarkus.mongodb.database=quarkus_db
qs-redis Redis client connection & pool size quarkus.redis.hosts=redis://localhost:6379
quarkus.redis.max-pool-size=10
qs-kafka Kafka bootstrap & SmallRye channels kafka.bootstrap.servers=localhost:9092
mp.messaging.incoming.channel-in.connector=smallrye-kafka
qs-oidc Quarkus OIDC / Keycloak authentication quarkus.oidc.auth-server-url=http://localhost:8080/realms/quarkus
quarkus.oidc.client-id=quarkus-app
qs-jwt SmallRye MicroProfile JWT token validation mp.jwt.verify.issuer=https://auth.example.com
mp.jwt.verify.publickey.location=publicKey.pem
qs-openapi OpenAPI spec path & Swagger UI setup quarkus.smallrye-openapi.path=/q/openapi
quarkus.swagger-ui.always-include=true
qs-logging Log levels, category overrides, format quarkus.log.level=INFO
quarkus.log.category."org.acme".level=DEBUG
qs-health-metrics SmallRye Health & Prometheus metrics quarkus.smallrye-health.root-path=/q/health
quarkus.micrometer.export.prometheus.path=/q/metrics
qs-mailer Quarkus Mailer host, port, sender quarkus.mailer.from=noreply@example.com
quarkus.mailer.port=1025
qs-virtual-threads Java 21 Project Loom Virtual Threads quarkus.virtual-threads.enabled=true
qs-native GraalVM Native Image container build quarkus.package.type=native
quarkus.native.container-build=true
qs-devservices Dev Services container customization quarkus.datasource.devservices.image-name=postgres:16-alpine
qs-profile-dev Development profile block (%dev) %dev.quarkus.log.level=DEBUG
%dev.quarkus.hibernate-orm.database.generation=drop-and-create
qs-profile-prod Production profile block (%prod) %prod.quarkus.log.level=INFO
%prod.quarkus.hibernate-orm.database.generation=validate
qs-profile-test Testing profile block (%test) %test.quarkus.datasource.jdbc.url=jdbc:h2:mem:test;...

2. 📄 application.yaml Snippets

Prefix Description Example Generated Structure
qs-http HTTP server & CORS in YAML quarkus:
  http:
    port: 8080
    cors: { ~: true }
qs-datasource-pg PostgreSQL datasource in YAML quarkus:
  datasource:
    db-kind: postgresql
    jdbc: { max-size: 16 }
qs-datasource-reactive-pg Reactive PostgreSQL in YAML quarkus:
  datasource:
    reactive: { url: postgresql://... }
qs-datasource-mysql MySQL datasource in YAML quarkus:
  datasource:
    db-kind: mysql
qs-hibernate Hibernate ORM in YAML quarkus:
  hibernate-orm:
    database: { generation: drop-and-create }
qs-flyway Flyway migrations in YAML quarkus:
  flyway:
    migrate-at-start: true
qs-mongodb MongoDB client in YAML quarkus:
  mongodb:
    database: quarkus_db
qs-redis Redis client in YAML quarkus:
  redis:
    hosts: redis://localhost:6379
qs-kafka Kafka & Reactive Messaging in YAML kafka: { bootstrap: { servers: localhost:9092 } }
mp: { messaging: { incoming: ... } }
qs-oidc OIDC / Keycloak auth in YAML quarkus:
  oidc:
    auth-server-url: http://...
qs-jwt SmallRye JWT verification in YAML mp:
  jwt:
    verify: { issuer: https://... }
qs-openapi Swagger UI & OpenAPI in YAML quarkus:
  swagger-ui: { always-include: true }
qs-logging Logging levels & format in YAML quarkus:
  log:
    level: INFO
qs-health-metrics Health & Micrometer in YAML quarkus:
  micrometer: { enabled: true }
qs-native GraalVM Native Image in YAML quarkus:
  package: { type: native }
qs-profiles Profile blocks ("%dev", "%prod") "%dev":
  quarkus: { log: { level: DEBUG } }

3. 🏗️ Java File Generator Snippets (*.java)

Generate full, compilable class files with correct packages, imports, and best-practice Quarkus patterns:

Prefix Type Description Included Components & Features
qs-gen-entity-active-record Class Panache Entity (Active Record) Extends PanacheEntity, @Entity, @Table, public fields, validation, and static query methods (findByName, findActive).
qs-gen-entity-base Class Panache Entity (Custom ID Base) Extends PanacheEntityBase, custom Primary Key (UUID id), @Id, @Column.
qs-gen-entity-repository Class Standard JPA Entity @Entity, @Table, @GeneratedValue(IDENTITY), @Version, standard getters/setters for Repository pattern.
qs-gen-repository Class Panache Repository @ApplicationScoped, implements PanacheRepository<Entity>, custom finder queries and delete methods.
qs-gen-entity-mongo Class Panache MongoDB Entity Extends PanacheMongoEntity, @MongoEntity(collection = "..."), public fields and BSON query methods.
qs-gen-repository-mongo Class Panache MongoDB Repository @ApplicationScoped, implements PanacheMongoRepository<Entity>, query methods.
qs-gen-resource-rest Class Complete REST CRUD Resource @Path, @Produces, @Consumes, @GET with pagination (Page.of()), @GET /{id}, @POST with @Valid & @Transactional, @PUT, and @DELETE.
qs-gen-dto-record Record Java 17+ Record DTO Immutable record with Jakarta validation (@NotBlank, @NotNull, @Size, @Email, @Positive).
qs-gen-validation-custom Annotation Custom Bean Validation Custom constraint @interface + nested ConstraintValidator<A, T> implementation.
qs-gen-test Class Quarkus Unit/Integration Test @QuarkusTest, RestAssured integration tests with JSON assertions (given().when().then()).
qs-gen-test-profile Class Custom @TestProfile Implements QuarkusTestProfile, override config properties via getConfigOverrides().
qs-gen-exception-mapper Class JAX-RS Exception Mapper @Provider, implements ExceptionMapper<E>, produces RFC 7807/JSON structured error responses.
qs-gen-scheduled Class Scheduled Task Service @ApplicationScoped, @Scheduled(every = "10s") and @Scheduled(cron = "0 0 2 * * ?").
qs-gen-startup Class Startup & Shutdown Observer @ApplicationScoped, listens to @Observes StartupEvent and @Observes ShutdownEvent.
qs-gen-kafka-consumer Class Kafka Message Consumer SmallRye Reactive Messaging @Incoming("channel") consumer with @Blocking worker pool.
qs-gen-kafka-producer Class Kafka Message Producer SmallRye Reactive Messaging @Channel("channel") Emitter<T> producer.
qs-gen-restclient Interface MicroProfile REST Client @RegisterRestClient(configKey = "..."), declarative HTTP client interface.

4. 🏷️ Quarkus & CDI Annotation Snippets (*.java)

Prefix Annotation / Member Description Example Usage
qs-inject @Inject Dependency injection field @Inject MyService myService;
qs-config @ConfigProperty MicroProfile config property injection @ConfigProperty(name = "app.limit", defaultValue = "10") int limit;
qs-transactional @Transactional Declarative database transaction boundary @Transactional
qs-applicationscoped @ApplicationScoped CDI Application-scoped bean lifecycle @ApplicationScoped
qs-requestscoped @RequestScoped CDI Request-scoped bean lifecycle @RequestScoped
qs-singleton @Singleton CDI Singleton bean lifecycle @Singleton
qs-blocking @Blocking RESTEasy Reactive offload to worker pool @Blocking
qs-nonblocking @NonBlocking RESTEasy Reactive event-loop execution @NonBlocking
qs-runonvirtualthread @RunOnVirtualThread Dispatch execution to Project Loom Virtual Thread @RunOnVirtualThread
qs-rolesallowed @RolesAllowed Restrict access to specific security roles @RolesAllowed({"admin", "manager"})
qs-authenticated @Authenticated Require an authenticated security identity @Authenticated
qs-permitall @PermitAll Permit all unauthenticated/public access @PermitAll
qs-retry @Retry Fault tolerance automatic retry @Retry(maxRetries = 3, delay = 200)
qs-fallback @Fallback Fault tolerance fallback handler method @Fallback(fallbackMethod = "fallbackHandler")
qs-circuitbreaker @CircuitBreaker Fault tolerance circuit breaker pattern @CircuitBreaker(requestVolumeThreshold = 4, failureRatio = 0.5)
qs-timeout @Timeout Fault tolerance execution deadline @Timeout(250)
qs-cache-result @CacheResult Quarkus Cache result caching @CacheResult(cacheName = "item-cache")
qs-cache-invalidate @CacheInvalidate Quarkus Cache invalidation @CacheInvalidate(cacheName = "item-cache")

5. 🌐 REST Endpoints & Methods Snippets (*.java)

Prefix HTTP Verb Description Generated Method Skeleton
qs-endpoint-get GET GET endpoint with @Path parameter @GET @Path("/{id}") public Response getById(@PathParam("id") Long id) { ... }
qs-endpoint-post POST POST endpoint with @Valid and @Transactional @POST @Transactional public Response create(@Valid MyDto dto) { ... }
qs-endpoint-put PUT PUT update endpoint with @Path("/{id}") @PUT @Path("/{id}") @Transactional public Response update(...) { ... }
qs-endpoint-delete DELETE DELETE endpoint with @Path("/{id}") @DELETE @Path("/{id}") @Transactional public Response delete(...) { ... }
qs-endpoint-sse GET Server-Sent Events (SSE) stream using Mutiny Multi @GET @Path("/stream") @Produces(MediaType.SERVER_SENT_EVENTS) Multi<String> stream() { ... }

6. 🗄️ Panache Operations & Query Snippets (*.java)

Prefix Operation Description Generated Code
qs-panache-find-all Query List all entity records List<MyEntity> items = MyEntity.listAll();
qs-panache-find-by-id Query Find entity by ID returning Optional Optional<MyEntity> item = MyEntity.findByIdOptional(id);
qs-panache-find-query Query Parameterized HQL query with arguments List<MyEntity> items = MyEntity.find("status = ?1 and age > ?2", status, age).list();
qs-panache-find-paged Query Paginated query with Page.of(index, size) List<MyEntity> items = MyEntity.findAll().page(Page.of(page, size)).list();
qs-panache-persist Mutation Persist entity instance entity.persist();
qs-panache-delete-by-id Mutation Delete entity by primary key boolean deleted = MyEntity.deleteById(id);
qs-panache-count Aggregate Count entities matching query long count = MyEntity.count("status", status);
qs-panache-update Mutation Bulk update records with query int updated = MyEntity.update("status = ?1 where id = ?2", status, id);

7. 🛡️ Jakarta Bean Validation Snippets (*.java)

Prefix Constraint Description Example Generated Annotation
qs-val-notblank @NotBlank Enforce non-null and trimmed length > 0 @NotBlank(message = "Field cannot be blank")
qs-val-notnull @NotNull Enforce non-null value @NotNull(message = "Field is required")
qs-val-size @Size Enforce string or collection length boundaries @Size(min = 1, max = 100, message = "Size must be between 1 and 100")
qs-val-min-max @Min / @Max Enforce numeric minimum and maximum values @Min(value = 1) @Max(value = 100)
qs-val-email @Email Enforce well-formed email address @Email(message = "Email address must be valid")
qs-val-pattern @Pattern Enforce regular expression match @Pattern(regexp = "^[A-Z0-9_-]+$", message = "Invalid format")
qs-val-positive @Positive Enforce numeric value strictly greater than 0 @Positive(message = "Value must be positive")
qs-val-valid @Valid Cascade nested validation to child objects @Valid

8. 📝 Common Dev Patterns & Logging Snippets (*.java)

Quarkus provides a fast, zero-allocation static logging API via io.quarkus.logging.Log. These snippets can be triggered using either qs: (e.g. qs:log-info) or qs- (e.g. qs-log-info):

Prefix (Aliases) Description Example Generated Code
qs:log-info / qs-log-info Informational log message (Log.info) Log.info("message");
qs:log-infof / qs-log-infof Formatted informational log (Log.infof) Log.infof("User %s created", username);
qs:log-error / qs-log-error Error log message (Log.error) Log.error("Error occurred");
qs:log-error-throwable / qs-log-error-throwable Error log with Throwable Log.error("Failed to process request", e);
qs:log-errorf / qs-log-errorf Formatted error log with Throwable Log.errorf(e, "Transaction %s failed", txId);
qs:log-warn / qs-log-warn Warning log message (Log.warn) Log.warn("Resource threshold approaching");
qs:log-warnf / qs-log-warnf Formatted warning log (Log.warnf) Log.warnf("Retry attempt %d failed", attempt);
qs:log-debug / qs-log-debug Debug log message (Log.debug) Log.debug("Payload received");
qs:log-debugf / qs-log-debugf Formatted debug log (Log.debugf) Log.debugf("Computed value: %d", val);
qs:logger / qs-logger Static JBoss Logger declaration private static final Logger LOG = Logger.getLogger(MyClass.class);
qs:tx-run / qs-tx-run Programmatic transaction execution QuarkusTransaction.requiringNew().run(() -> { ... });
qs:try-catch-log / qs-try-catch-log Try-catch block with Log.error try { ... } catch (Exception e) { Log.error("...", e); }
qs:security-identity / qs-security-identity Inject SecurityIdentity @Inject SecurityIdentity securityIdentity;
qs:uni-item / qs-uni-item Mutiny Uni creation Uni.createFrom().item(payload);
qs:multi-items / qs-multi-items Mutiny Multi stream creation Multi.createFrom().items(elements);
qs:require-non-null / qs-require-non-null Parameter non-null check Objects.requireNonNull(param, "Parameter cannot be null");

📋 Requirements & Dependencies

  • VS Code: v1.105.0 or later.
  • Java: Java 17+ or 21+ (recommended for modern Quarkus 3.x+ applications).
  • Extension Dependency:
    • Quarkus Tools for Visual Studio Code (redhat.vscode-quarkus) by Red Hat (automatically installed as an extension dependency).
  • Container Engine: Docker Desktop or Podman (required for Dev Services container detection and lifecycle management).

🚀 Getting Started

  1. Open any Quarkus project in VS Code (single-module or multi-module Maven/Gradle).
  2. Click on the Quarkus Studio icon in the Activity Bar.
  3. In the Apps view:
    • Browse your project hierarchy and submodules.
    • Click the Start Dev Mode (▶) button next to any runnable application module.
    • Expand the Endpoints node to view all discovered REST endpoints. Click any endpoint to jump directly to its method in the source code, or click the browser icon to launch it.
    • Right-click the Endpoints node and choose Generate Postman collections to export a Postman Collection v2.1.0 file (AppName-<date>.postman_collection.json) directly into the project root's postman/ directory.
    • Click the inline Open Dev UI (🌐) icon on any running application row to open the dashboard (automatically detected on quarkus.http.port if configured).
  4. In the Dev Services view:
    • View running containers provisioned by Quarkus or Docker/Podman.
    • Click Copy Connection String to use database/service credentials in external clients.
    • Click View Live Logs to inspect container stdout/stderr.
    • Click Open Web UI to access web management dashboards (e.g., Keycloak or Mailpit).
  5. Open application.properties:
    • Start typing quarkus. or %dev.quarkus. to trigger intelligent autocompletion with build-time vs runtime tags.
    • Notice live Inlay Hints showing cloud memory and serverless invocation cost estimates.
    • Hover over properties to see detailed Native vs JVM cloud sizing metrics.
  6. Generate Panache Entities & CRUD:
    • Right-click any package folder in Explorer and select Generate Panache Entity & CRUD.
    • Or right-click a .json file and select Generate Panache from JSON Payload.
    • Or right-click a .sql schema file and select Generate Panache from SQL / DDL Schema.
  7. Live Continuous Testing & Feedback HUD:
    • Start Dev Mode for your Quarkus project.
    • Open any Java test file (*Test.java).
    • Observe live Quarkus Tests HUD in the Status Bar and green/red indicators in the editor gutter next to your test methods.
    • Hover over failing test gutter icons to view instant assertion failure messages and stack traces.
    • Edit any Java source or config file and press Save: failed tests are automatically re-run!
    • Switch or scaffold @TestProfile classes using the CodeLens link, sidebar action, or command palette.
  8. Use Quarkus Studio Snippets (qs- / qs:):
    • In application.properties or application.yaml, type qs-http, qs-datasource-pg, qs-hibernate, qs-kafka, or qs-oidc to instantly scaffold datasources, security, messaging, and environment profiles.
    • In any .java file, type qs-gen to generate full Panache entities, repositories, REST CRUD resources, DTO records, or @QuarkusTest suites.
    • Type qs:log-info, qs:log-error, qs-transactional, qs-applicationscoped, qs-endpoint, qs-panache, or qs-val for instant Quarkus logging, annotations, endpoint methods, Panache queries, and Bean Validation constraints.

🛠 Extension Settings

Quarkus Studio provides the following configuration settings under quarkusStudio:

Setting Type Default Description
quarkusStudio.containerRuntime string "auto" Preferred container runtime (auto, docker, or podman).
quarkusStudio.devServices.autoRefresh boolean true Automatically refresh Dev Services containers periodically.
quarkusStudio.devServices.refreshInterval number 5 Polling interval in seconds for Dev Services container refreshes.
quarkusStudio.devServices.quarkusDevUrl string "http://localhost:8080" Fallback base URL for the running Quarkus Dev instance.
quarkusStudio.configAssistant.enableInlayHints boolean true Show inline cloud deployment resource and cost estimates in application.properties.
quarkusStudio.configAssistant.enableDiagnostics boolean true Warn when build-time fixed properties are marked for runtime override in application.properties.
quarkusStudio.configAssistant.codeQuarkusUrl string "https://code.quarkus.io/api/extensions" Metadata API endpoint URL for code.quarkus.io extension catalog.
quarkusStudio.panache.defaultBackend string "hibernate-orm" Default persistence provider for Panache code generation (hibernate-orm or mongodb).
quarkusStudio.panache.defaultPattern string "active-record" Default architectural pattern for Panache generation (active-record or repository).
quarkusStudio.continuousTesting.enabled boolean true Enable live continuous testing integration and HUD.
quarkusStudio.continuousTesting.rerunOnSave boolean true Automatically rerun failed tests on Java file save.
quarkusStudio.continuousTesting.showGutterIndicators boolean true Render pass/fail indicators directly in the code gutter next to test methods.
quarkusStudio.continuousTesting.showCodeLens boolean true Show interactive Run / Rerun CodeLens buttons above test methods.
quarkusStudio.continuousTesting.devUiUrl string "http://localhost:8080" Quarkus Dev UI base URL for continuous testing REST API polling.

⌨️ Contributed Commands

Apps View Commands

Command Title Description
quarkus-studio.projectViewer.refresh Refresh Apps Rescans workspace for Quarkus Maven and Gradle projects.
quarkus-studio.projectViewer.startDevMode Start Dev Mode Starts dev mode for selected project or module in an integrated terminal.
quarkus-studio.projectViewer.stopDevMode Stop Dev Mode Terminates the running dev mode process.
quarkus-studio.projectViewer.restartDevMode Restart Dev Mode Restarts dev mode for the selected module.
quarkus-studio.projectViewer.viewLogs View Dev Logs Focuses the integrated terminal running dev mode.
quarkus-studio.projectViewer.openDevUi Open Dev UI Opens the Quarkus Dev UI (/q/dev-ui) at the configured HTTP port.
quarkus-studio.projectViewer.openConfigFile Open Config File Opens application.properties or application.yaml in the editor.
quarkus-studio.projectViewer.openBuildFile Open Build File Opens pom.xml or build.gradle in the editor.
quarkus-studio.projectViewer.copyEndpointPath Copy Endpoint Path Copies the endpoint's relative path (e.g. /hello) to clipboard.
quarkus-studio.projectViewer.copyEndpointUrl Copy Endpoint URL Copies the full endpoint URL (http://localhost:<port>/...) to clipboard.
quarkus-studio.projectViewer.openEndpointInBrowser Open Endpoint in Browser Opens the HTTP endpoint in the default web browser.
quarkus-studio.projectViewer.generatePostmanCollection Generate Postman collections Generates a Postman Collection v2.1.0 JSON file (AppName-<date>.postman_collection.json) in project root/postman from endpoints.

Dev Services Commands

Command Title Description
quarkus-studio.devServices.refresh Refresh Dev Services Reloads active container list from Docker/Podman.
quarkus-studio.devServices.startDevMode Start Quarkus Dev Mode Launches dev mode to initialize Dev Services containers.
quarkus-studio.devServices.stop Stop Container Stops the selected test/dev container.
quarkus-studio.devServices.restart Restart Container Restarts the selected container.
quarkus-studio.devServices.viewLogs View Live Logs Streams live container logs to a dedicated output channel.
quarkus-studio.devServices.copyConnectionString Copy Connection String Copies connection URL or JDBC URL to the clipboard.
quarkus-studio.devServices.openWebUI Open Web UI Opens service web consoles (Keycloak, Mailpit, etc.) in the browser.

Config Assistant Commands

Command Title Description
quarkus-studio.configAssistant.reload Reload Config Metadata Refreshes extension metadata and configuration schema from code.quarkus.io.
quarkus-studio.configAssistant.showCostEstimates Show Cloud Cost & Resource Estimates Displays full serverless and container sizing estimate report for the application.

Panache Generator Commands

Command Title Description
quarkus-studio.panache.generateEntity Generate Panache Entity & CRUD Launches interactive wizard to scaffold Panache entity, DTO, repository, and REST resource.
quarkus-studio.panache.generateFromJson Generate Panache from JSON Payload Scaffolds Panache models from selected JSON file or pasted sample payload.
quarkus-studio.panache.generateFromSql Generate Panache from SQL / DDL Schema Scaffolds Panache models from CREATE TABLE DDL statements with type mapping.

Continuous Testing Commands

Command Title Description
quarkus-studio.continuousTesting.toggle Toggle Continuous Testing Toggles live continuous testing execution (t).
quarkus-studio.continuousTesting.start Start / Resume Continuous Testing Starts or resumes continuous testing runner (r).
quarkus-studio.continuousTesting.pause Pause Continuous Testing Pauses continuous testing runner (p).
quarkus-studio.continuousTesting.rerunAll Rerun All Tests Reruns entire test suite (r).
quarkus-studio.continuousTesting.rerunFailed Rerun Failed Tests Instantly reruns only tests that failed in the last cycle (f).
quarkus-studio.continuousTesting.rerunSingle Rerun Test Runs a single test method or test class.
quarkus-studio.continuousTesting.switchProfile Switch Test Profile (@TestProfile) Quick-pick menu to swap, remove, or scaffold @TestProfile implementations.
quarkus-studio.continuousTesting.openOutput Show Continuous Testing Output Focuses the active Quarkus dev mode terminal.
quarkus-studio.continuousTesting.refresh Refresh Continuous Testing Rescans test reports from filesystem and updates state.

Project Builder Commands

Command Title Description
quarkus-studio.projectBuilder.createMultiModuleMaven Create Multi Module Project with Maven Scaffolds a multi-module Maven project with parent POM (bare minimum dependencies), common, and deployment.
quarkus-studio.projectBuilder.createMultiModuleGradle Create Multi Module Project with Gradle Scaffolds a multi-module Gradle project with root settings, common, and deployment.
quarkus-studio.projectBuilder.createSingleModuleMaven Create Single Module Project with Maven Scaffolds a single-module Quarkus Maven application.
quarkus-studio.projectBuilder.createSingleModuleGradle Create Single Module Project with Gradle Scaffolds a single-module Quarkus Gradle application.
quarkus-studio.projectBuilder.addSubmodule Add New Module Adds a new Quarkus microservice or shared library under the project root.
quarkus-studio.projectBuilder.addStarters Add Starters Adds curated technology starter packs (Web API, PostgreSQL Panache, Kafka, OIDC, etc.).
quarkus-studio.projectBuilder.addExtension Add Quarkus Extension Searches and adds individual Quarkus extensions from the catalog to pom.xml or build.gradle.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft