--- since: 1.1.1 --- # OpenRouter Model Discovery gitaiflow includes OpenRouter model discovery through: ```bash gitaiflow --list-models ``` This 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: ```bash gitaiflow --list-models ``` gitaiflow 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/](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: ```bash gitaiflow --list-models ``` The result contains model identifiers and their context information. A typical entry looks conceptually like: ```text ID CONTEXT FREE google/gemma-4-31b-it:free 262144 yes ``` The important value for later configuration is the **ID**. For example: ```text google/gemma-4-31b-it:free ``` can 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: ```text google/gemma-4-31b-it:free ``` Use this exact value when configuring: ```bash AI_MODEL=google/gemma-4-31b-it:free ``` Do not replace the provider/model structure with only the model's display name. --- ## CONTEXT `CONTEXT` is the model's context-window size. For example: ```text 262144 ``` means 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: ```text yes ``` Free availability can change on OpenRouter. Treat the result of the current: ```bash gitaiflow --list-models ``` command 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-models` to see the current catalog. --- # `openrouter/free` One particularly useful entry is: ```text openrouter/free ``` with: ```text CONTEXT: 200000 FREE: yes ``` This is useful when you want OpenRouter to select from its available free models rather than hard-coding one specific free model. Configure it as: ```bash AI_MODEL=openrouter/free ``` This is different from selecting a concrete model such as: ```bash AI_MODEL=google/gemma-4-31b-it:free ``` With a concrete model ID, you explicitly choose the model. With: ```text openrouter/free ``` you delegate free-model selection to OpenRouter. --- # Selecting a Model for gitaiflow A simple workflow is: ```text Run --list-models ↓ Review model IDs ↓ Choose a model ↓ Set AI_MODEL ↓ Run gitaiflow normally ``` For example: ```bash gitaiflow --list-models ``` Suppose you choose: ```text google/gemma-4-31b-it:free ``` Configure: ```bash export AI_PROVIDER=openrouter export AI_MODEL=google/gemma-4-31b-it:free ``` Then run: ```bash 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: ```text 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,576 ``` ### Model 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: 1. **Code capability** — the model should be suitable for understanding source-code changes. 2. **Context window** — it should comfortably accommodate the expected diff size. 3. **Availability** — free models can become temporarily unavailable or rate-limited. 4. **Consistency** — a concrete model ID is preferable when reproducibility matters. 5. **Cost** — `:free` models 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 ```bash gitaiflow --list-models ``` This: - queries OpenRouter's model catalog - displays model information - helps you choose a model - does not generate a Git summary ## Normal summary generation ```bash 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: ```bash export AI_PROVIDER=openrouter export AI_API_KEY= export AI_MODEL=google/gemma-4-31b-it:free ``` Do 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: ```bash gitaiflow --version ``` Then 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: ```bash gitaiflow --list-models ``` If 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: ```bash gitaiflow --list-models ``` Then verify the exact model ID. For example, these are distinct identifiers: ```text google/gemma-4-31b-it:free openrouter/free ``` Do 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: ```bash AI_MODEL=openrouter/free ``` where 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: ```bash gitaiflow --list-models ``` with: ```bash gitaiflow --path . ``` The first is model discovery. The second performs repository analysis and AI synthesis. For complete telemetry behavior, see: ```text user-guides/telemetry.md ``` --- # Quick Reference ### List available OpenRouter models ```bash gitaiflow --list-models ``` ### Select a specific free model ```bash export AI_PROVIDER=openrouter export AI_MODEL=google/gemma-4-31b-it:free ``` ### Let OpenRouter select a free model ```bash export AI_PROVIDER=openrouter export AI_MODEL=openrouter/free ``` ### Run gitaiflow ```bash 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/free` dynamic 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.**