Community model registry

Find qualified models

Discover the power of small and medium-sized models for local, in-JVM inference.

ModelJARs are versioned JAR files that make AI models available to the Models JVM inference library. Think of WebJars, but for AI models: standard dependency coordinates, immutable metadata, and measured runtime support across GGUF, Safetensors, and CACT model formats.

0 model artifacts 0 qualified hybrids 0 model identities 0 pure Java 0 publishers

Loading models...

No Java required

Find, pull, and try models locally

The GraalVM-native ModelJars CLI searches and filters the qualified catalog, exposes exact provenance, reports local inference capabilities, produces build-tool coordinates, and downloads verified weights into the same cache used by the JVM Runtime. It checks the published catalog hash on catalog-backed commands, atomically activates changed metadata, and keeps the last verified catalog available offline. Generated chat, embedding, reranking, and tool demos execute the same in-process Java APIs applications use.

01

Install the native CLI

brew install integrallis/tap/modeljars

# Or install directly on macOS or Linux
curl -fsSL https://raw.githubusercontent.com/ModelJars/modeljars/main/install.sh | sh
02

Explore interactively or run once

# Open the ModelJars prompt
modeljars

# Or run a single command
modeljars search gemma
modeljars models embedding --sort size
modeljars search --capability embedding --sort size
modeljars search fintech
modeljars search gemma --details
modeljars alias list
modeljars show gemma-26b
03

Pull and verify

modeljars pull qwen-bf16
modeljars list
04

Generate and run a Java demo

modeljars demo qwen-0.6b "What is the capital of France? Reply with only the city name."
jbang qwen3-0-6b-chat-demo.java

modeljars demo embeddinggemma "Public transit schedule"
jbang ggml-org-embeddinggemma-300m-embedding-demo.java

modeljars demo minilm-reranker "How many people live in Berlin?"
jbang cstr-ms-marco-minilm-l6-v2-reranking-demo.java

# Generated demos use the same public Java APIs as your application
modeljars info
modeljars snippet gemma-26b --tool maven

# Stable output for scripts and agents
modeljars search gemma --output json

Model files come directly from immutable, revision-pinned upstream URLs. Every file in a GGUF, Safetensors, or CACT artifact must match the marker's exact byte count and SHA-256 before the complete artifact enters the cache. Newly published catalog entries are marked NEW in CLI search results for 48 hours. The CLI generates an unambiguous short name for every model in each verified catalog update.

Use from Java

Run a qualified model in Java

A model JAR identifies and verifies model weights; it is not an inference engine. The ModelJars JVM Runtime brings Integrallis Models and its Java and Rust/FFM execution backends, then resolves the qualified profile for the exact artifact. Applications can add Models' optional Java/Tornado backend for capacity-qualified NVIDIA Q4_0 execution; the same API safely retains the Vector API fallback.

01

Add the JVM Runtime and the model

dependencies {
  implementation("org.modeljars:modeljars:0.1.57")
  implementation("org.modeljars.huggingface:ggml-org.qwen3-0.6b-gguf.q4_0:3.0.0-q4_0.1")
}
02

Select the exact artifact

import static org.modeljars.catalog.Qwen3_0_6b_Q4_0.MODEL;

var selected = MODEL;
03

Run inference in-process

import com.integrallis.models.api.ModelPrompt;
import com.integrallis.models.runtime.InferencePipeline;

var options = SamplingOptions.builder()
  .temperature(0).maxTokens(128).build();

try (var runtime = ModelJars.openRuntime(selected)) {
  InferencePipeline pipeline = runtime.pipeline();
  ModelPrompt prompt = runtime.chatTemplate().render(
    List.of(ChatMessage.user("Name one JVM language.")));
  String answer = pipeline.generate(prompt, options);
}

Inference requires Java 25 or newer and --add-modules=jdk.incubator.vector. The qualified Rust/FFM profiles also require --enable-native-access=ALL-UNNAMED. Class-file versions 69 versus 61 mean the process actually launched with Java 17; check java -version, mvn -v, and the Gradle JVM. For low-level inference, runtime.pipeline() exposes the tokenizer, metadata, active context, structured prefill, logits, reset, checkpoint, and rewind.

Using Spring AI or Spring Boot? Run modeljars coordinates <model> --spring-boot for the BOMs, Models starter, qualified application.yaml chat template, and model bean, or modeljars demo <model> --spring-ai for a runnable ChatClient program. --spring-ai and --spring-boot work with both commands for chat, tool-calling, embedding, and reranking models.