OpenRouter Model Discovery
gitaiflow includes OpenRouter model discovery through:
On this page ▾
- What --list-models Does
- Prerequisites
- Basic Usage
- ID
- CONTEXT
- FREE
- Context size
- Model identity
- Model discovery
- Normal summary generation
- --list-models fails
- Model list is empty
- A model shown by --list-models does not work
- Free model is rate-limited
- List available OpenRouter models
- Select a specific free model
- Let OpenRouter select a free model
- Run gitaiflow
- OpenRouter
gitaiflow --list-modelsThis command is designed to help you discover currently available OpenRouter models that can be used with gitaiflow without manually browsing the OpenRouter model catalog.
It is a model-discovery feature, not the normal gitaiflow summary workflow.
What --list-models Does
When you run:
gitaiflow --list-modelsgitaiflow queries the OpenRouter model catalog and displays models that are available through OpenRouter's API.
The output focuses on information useful when selecting a model for gitaiflow:
- ID — the model identifier to use in configuration
- CONTEXT — the model's context window
- FREE — whether the model is available as a free model
The command is especially useful when you want to find a free model and then configure it as your AI_MODEL.
Prerequisites
You need an OpenRouter account.
OpenRouter: https://openrouter.ai/
Create an account and obtain the API credentials required for OpenRouter API access.
The --list-models command specifically uses OpenRouter's model catalog, so this feature is independent of the AI provider selected for a normal gitaiflow run.
Basic Usage
Run:
gitaiflow --list-modelsThe result contains model identifiers and their context information.
A typical entry looks conceptually like:
ID CONTEXT FREE
google/gemma-4-31b-it:free 262144 yesThe important value for later configuration is the ID.
For example:
google/gemma-4-31b-it:freecan be used as the model identifier when configuring OpenRouter for normal gitaiflow summary generation.
Understanding the Output
ID
ID is the OpenRouter model identifier.
Example:
google/gemma-4-31b-it:freeUse this exact value when configuring:
AI_MODEL=google/gemma-4-31b-it:freeDo not replace the provider/model structure with only the model's display name.
CONTEXT
CONTEXT is the model's context-window size.
For example:
262144means the model supports a context window of up to approximately 262K tokens.
A larger context window can be useful for gitaiflow because the AI request can contain:
- the system prompt
- the generated diff
- the requested output
However, a large context window does not mean that every request should contain a very large diff. Smaller, focused changes are generally easier to summarize and more efficient.
FREE
FREE indicates whether the model is marked as free in the OpenRouter catalog.
Example:
yesFree availability can change on OpenRouter. Treat the result of the current:
gitaiflow --list-modelscommand as the authoritative discovery result for your current environment/time.
A model being listed as free does not mean it has unlimited capacity or unlimited throughput.
Current Free Models
The following free models were available in the model catalog used for this documentation:
| ID | Context | Free |
|---|---|---|
inclusionai/ling-3.0-flash-fin:free |
262,144 | Yes |
dots-studio/dots-3-note-preview:free |
512,000 | Yes |
liquid/lfm-2.5-2.6b:free |
65,536 | Yes |
nvidia/nemotron-3.5-lightning:free |
1,000,000 | Yes |
thinkingmachines/inkling-small:free |
1,048,576 | Yes |
poolside/laguna-s-2.1:free |
262,144 | Yes |
thinkingmachines/inkling:free |
1,048,576 | Yes |
poolside/laguna-xs-2.1:free |
262,144 | Yes |
cohere/north-mini-code:free |
256,000 | Yes |
z-ai/glm-5.2:free |
256,000 | Yes |
nvidia/nemotron-3.5-content-safety:free |
128,000 | Yes |
nvidia/nemotron-3-ultra-550b-a55b:free |
1,000,000 | Yes |
minimax/minimax-m3:free |
1,048,576 | Yes |
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free |
256,000 | Yes |
google/gemma-4-26b-a4b-it:free |
262,144 | Yes |
google/gemma-4-31b-it:free |
262,144 | Yes |
minimax/minimax-m2.7:free |
196,608 | Yes |
nvidia/nemotron-3-super-120b-a12b:free |
262,144 | Yes |
openrouter/free |
200,000 | Yes |
Availability note: OpenRouter's catalog is dynamic. The list above represents the catalog information supplied for this documentation and should not be treated as a permanent inventory. Run
gitaiflow --list-modelsto see the current catalog.
openrouter/free
One particularly useful entry is:
openrouter/freewith:
CONTEXT: 200000
FREE: yesThis is useful when you want OpenRouter to select from its available free models rather than hard-coding one specific free model.
Configure it as:
AI_MODEL=openrouter/freeThis is different from selecting a concrete model such as:
AI_MODEL=google/gemma-4-31b-it:freeWith a concrete model ID, you explicitly choose the model.
With:
openrouter/freeyou delegate free-model selection to OpenRouter.
Selecting a Model for gitaiflow
A simple workflow is:
Run --list-models
↓
Review model IDs
↓
Choose a model
↓
Set AI_MODEL
↓
Run gitaiflow normallyFor example:
gitaiflow --list-modelsSuppose you choose:
google/gemma-4-31b-it:freeConfigure:
export AI_PROVIDER=openrouter
export AI_MODEL=google/gemma-4-31b-it:freeThen run:
gitaiflow --path .The normal summary workflow will use the configured OpenRouter-compatible endpoint and selected model.
Choosing Between Models
The --list-models output gives you two particularly useful signals:
Context size
For large changes, a model with a larger context window provides more room for the prompt and diff.
Examples:
liquid/lfm-2.5-2.6b:free 65,536
google/gemma-4-31b-it:free 262,144
dots-studio/dots-3-note-preview:free 512,000
thinkingmachines/inkling:free 1,048,576Model identity
The model ID tells you exactly which model you are selecting.
For repeatable workflows, explicitly selecting a concrete model can make behavior more predictable than relying on a dynamic free-model alias.
Recommended Selection Strategy
For gitaiflow, do not choose a model based only on the largest context number.
Consider:
- Code capability — the model should be suitable for understanding source-code changes.
- Context window — it should comfortably accommodate the expected diff size.
- Availability — free models can become temporarily unavailable or rate-limited.
- Consistency — a concrete model ID is preferable when reproducibility matters.
- Cost —
:freemodels can be useful for experimentation and low-cost workflows.
For most repositories, the goal is not to maximize context size. The goal is to select a model that reliably produces useful commit summaries from the repository's typical changes.
--list-models vs Normal gitaiflow Runs
These are separate operations.
Model discovery
gitaiflow --list-modelsThis:
- queries OpenRouter's model catalog
- displays model information
- helps you choose a model
- does not generate a Git summary
Normal summary generation
gitaiflow --path .This:
- analyzes Git changes
- generates the filtered diff
- sends the summary request to the configured AI provider
- parses the AI response
- writes the resulting artifacts
Therefore, you can use --list-models before configuring the model, then use the selected model during normal execution.
Authentication and Configuration
The model catalog feature is specifically tied to OpenRouter.
For normal OpenRouter summary generation, configure the OpenRouter provider and credentials according to the gitaiflow configuration supported by your installed version.
Typical configuration is conceptually:
export AI_PROVIDER=openrouter
export AI_API_KEY=<your-openrouter-key>
export AI_MODEL=google/gemma-4-31b-it:freeDo not put your API key directly into source code or commit it to Git.
If you use a .env file, keep it outside version-controlled content or ensure it is properly ignored.
Troubleshooting
--list-models fails
Check:
gitaiflow --versionThen verify network connectivity from the environment where gitaiflow is running.
OpenRouter model discovery requires access to the OpenRouter API.
Model list is empty
An empty result can indicate that the OpenRouter catalog request did not return usable model records.
Retry:
gitaiflow --list-modelsIf the problem persists, verify network access and the installed gitaiflow version.
A model shown by --list-models does not work
Model availability can change independently of gitaiflow.
Check the current catalog again:
gitaiflow --list-modelsThen verify the exact model ID.
For example, these are distinct identifiers:
google/gemma-4-31b-it:free
openrouter/freeDo not assume that a model ID remains available indefinitely just because it appeared in an earlier catalog response.
Free model is rate-limited
FREE=yes does not guarantee unlimited access.
A free model can have provider-side:
- rate limits
- concurrency limits
- availability restrictions
- temporary capacity constraints
If a selected free model is unavailable, try another currently listed model or use:
AI_MODEL=openrouter/freewhere appropriate.
Security and Privacy
--list-models is a model-catalog discovery operation.
It does not need your repository diff to determine which OpenRouter models are available.
For normal summary generation, the security/privacy boundary is different because the selected AI provider receives the prompt and filtered diff required to generate the summary.
Do not confuse:
gitaiflow --list-modelswith:
gitaiflow --path .The first is model discovery. The second performs repository analysis and AI synthesis.
For complete telemetry behavior, see:
user-guides/telemetry.mdQuick Reference
List available OpenRouter models
gitaiflow --list-modelsSelect a specific free model
export AI_PROVIDER=openrouter
export AI_MODEL=google/gemma-4-31b-it:freeLet OpenRouter select a free model
export AI_PROVIDER=openrouter
export AI_MODEL=openrouter/freeRun gitaiflow
gitaiflow --path .OpenRouter
Sign up / manage your OpenRouter account(https://openrouter.ai/)
Summary
gitaiflow --list-models provides a convenient way to discover OpenRouter models directly from the CLI.
Use it to:
- inspect available model IDs
- compare context windows
- identify free models
- select a model for
AI_MODEL - discover the
openrouter/freedynamic free-model option
Because OpenRouter's catalog changes over time, the current output of gitaiflow --list-models should always be preferred over a static model list in documentation.