Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 8 additions & 14 deletions .github/workflows/beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ on:
push:
branches:
- 'feature/**'
- 'beta'
- 'main'
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- 'beta'
- 'main'

jobs:
Expand Down Expand Up @@ -76,16 +75,11 @@ jobs:
echo "preid=beta" >> $GITHUB_OUTPUT
echo "tag=beta" >> $GITHUB_OUTPUT
echo "Release type: BETA (experimental features)"
elif [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == refs/heads/beta ]]; then
echo "type=beta" >> $GITHUB_OUTPUT
echo "preid=beta" >> $GITHUB_OUTPUT
echo "tag=beta" >> $GITHUB_OUTPUT
echo "Release type: BETA (testing phase - direct push)"
elif [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "beta" ]]; then
echo "type=beta" >> $GITHUB_OUTPUT
echo "preid=beta" >> $GITHUB_OUTPUT
echo "tag=beta" >> $GITHUB_OUTPUT
echo "Release type: BETA (testing phase - PR merge)"
elif [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == refs/heads/main ]]; then
echo "type=stable" >> $GITHUB_OUTPUT
echo "preid=" >> $GITHUB_OUTPUT
echo "tag=latest" >> $GITHUB_OUTPUT
echo "Release type: STABLE (production ready)"
elif [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "main" ]]; then
echo "type=stable" >> $GITHUB_OUTPUT
echo "preid=" >> $GITHUB_OUTPUT
Expand All @@ -111,8 +105,8 @@ jobs:
# For stable releases, analyze commits to determine semantic version
echo "Analyzing commits to determine semantic version..."

# Get commits since last stable release
LAST_STABLE=$(npm view "$PKG" versions --json 2>/dev/null | jq -r ".[] | select(startswith(\"0.\") and (contains(\"-alpha.\") | not) and (contains(\"-beta.\") | not))" | tail -1) || echo ""
# Get commits since last stable release (excluding beta versions)
LAST_STABLE=$(npm view "$PKG" versions --json 2>/dev/null | jq -r ".[] | select(startswith(\"0.\") and (contains(\"-beta.\") | not))" | tail -1) || echo ""

if [ -n "$LAST_STABLE" ] && [ "$LAST_STABLE" != "null" ]; then
echo "Last stable version: $LAST_STABLE"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ jobs:
echo "Analyzing commits to determine semantic version..."

# Get commits since last stable release
LAST_STABLE=$(npm view "$PKG" versions --json 2>/dev/null | jq -r ".[] | select(startswith(\"0.\") and (contains(\"-alpha.\") | not) and (contains(\"-beta.\") | not))" | tail -1) || echo ""
LAST_STABLE=$(npm view "$PKG" versions --json 2>/dev/null | jq -r ".[] | select(startswith(\"0.\") and (contains(\"-beta.\") | not))" | tail -1) || echo ""

if [ -n "$LAST_STABLE" ] && [ "$LAST_STABLE" != "null" ]; then
echo "Last stable version: $LAST_STABLE"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Release (semantic-release) - DISABLED

# DISABLED: Using custom alpha/beta workflow instead
# DISABLED: Using custom beta workflow instead
# This will be re-enabled when we're ready for stable releases
on:
workflow_dispatch: # Manual trigger only, no automatic triggers
Expand Down
15 changes: 0 additions & 15 deletions CHANGELOG.md

This file was deleted.

56 changes: 38 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,47 @@
[![npm latest](https://img.shields.io/npm/v/@letuscode/openrouter-cli)](https://www.npmjs.com/package/@letuscode/openrouter-cli)
[![npm beta](https://img.shields.io/npm/v/@letuscode/openrouter-cli/beta)](https://www.npmjs.com/package/@letuscode/openrouter-cli?activeTab=versions)

OpenAI‑compatible CLI for OpenRouter. Ask questions, chat in a REPL, and fuzzy‑search models.
OpenAI‑compatible CLI for `OpenRouter`. Ask questions, chat in a REPL, and fuzzy‑search models.

> **Note**: This project is in MVP development. Beta releases are for testing, and stable releases are for general use. See [Release Strategy](docs/RELEASE_STRATEGY.md) for details.

You can change your model any time. In a terminal, run `openrouter models` to browse, or in the REPL type `/model` to search inline. Tip: search for `free` to see free models.

<table>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/letuscode/openrouter-cli/main/assets/img/session.png" width="400" />
<br><em>Monitor your current session costs</em>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/letuscode/openrouter-cli/main/assets/img/billing.png" width="400" />
<br><em>Get Billing Information</em>
</td>
</tr>
</table>

## Fuzzy Search Models

<table>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/letuscode/openrouter-cli/main/assets/img/fuzzy%20search.png" width="100%" />
<br><em>Monitor your current session costs</em>
</td>
</tr >
</table>

## Repl Chat Configurations

<table>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/letuscode/openrouter-cli/main/assets/img/chat.png" width="100%" />
<br><em>Repl Chat Configurations</em>
</td>
</tr >
</table>

## Install

### Stable Release (Recommended)
Expand All @@ -19,13 +56,6 @@ You can change your model any time. In a terminal, run `openrouter models` to br
- Global: `npm i -g @letuscode/openrouter-cli@beta`
- One‑off: `npx @letuscode/openrouter-cli@beta --help`

### Alpha Release (Experimental)

- Global: `npm i -g @letuscode/openrouter-cli@alpha`
- One‑off: `npx @letuscode/openrouter-cli@alpha --help`

> **Note**: This project is in MVP development. Alpha releases are experimental, beta releases are for testing, and stable releases are for general use. See [Release Strategy](docs/RELEASE_STRATEGY.md) for details.

Tip: Running `openrouter` with no args starts the setup wizard and then opens the REPL (in a terminal).

### Requirements
Expand Down Expand Up @@ -111,13 +141,3 @@ Pick 1-10 or type a model id:
## License

- MIT

# Test alpha release

# Testing GitHub release creation

# Final test of alpha workflow

# Testing improved version bumping

# Testing version increment
Binary file added assets/img/billing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/chat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/fuzzy search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/session.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 3 additions & 14 deletions docs/RELEASE_STRATEGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,6 @@ This document outlines our automated release strategy for the OpenRouter CLI pro
- **When to use**: When developing new features that may have breaking changes
- **Automation**: Automatic version bumping and publishing on push

### Beta Branch (`beta`)

- **Purpose**: Feature-complete functionality ready for testing
- **Release Type**: Beta releases
- **NPM Tag**: `beta`
- **Version Pattern**: `0.1.3-beta.0`, `0.1.4-beta.0`, etc. (next patch version + beta)
- **When to use**: When features are complete and ready for broader testing
- **Automation**: Automatic version bumping and publishing on push

### Main Branch (`main`)

- **Purpose**: Stable, production-ready releases
Expand All @@ -35,9 +26,8 @@ This document outlines our automated release strategy for the OpenRouter CLI pro

1. **Create feature branch**: `feature/your-feature-name`
2. **Develop feature**: Push commits → Automatic beta releases (`0.1.3-beta.0`, `0.1.3-beta.1`)
3. **Merge to beta**: `beta` branch
4. **Test thoroughly**: Push commits → Automatic beta releases (`0.1.4-beta.0`, `0.1.4-beta.1`)
5. **Merge to main**: When ready → Automatic stable release (semantic versioning: `0.2.0`, `1.0.0`, etc.)
3. **Test thoroughly**: Use beta NPM package for testing
4. **Merge to main**: When satisfied → Automatic stable release (semantic versioning: `0.2.0`, `1.0.0`, etc.)

## Automated Version Management

Expand Down Expand Up @@ -110,7 +100,7 @@ npm install @letuscode/openrouter-cli@0.1.0-beta.1
### GitHub Actions Workflow

- **File**: `.github/workflows/beta.yml`
- **Triggers**: Push to `feature/*`, `beta`, or merge to `main`
- **Triggers**: Push to `feature/*` or `main`
- **Permissions**: Full repository access for automated commits
- **Features**:
- Automatic version bumping
Expand All @@ -123,7 +113,6 @@ npm install @letuscode/openrouter-cli@0.1.0-beta.1
```bash
# Beta releases
Main: 0.1.2 → Feature branch → 0.1.3-beta.0
Main: 0.1.2 → Beta branch → 0.1.3-beta.0

# Main releases (semantic versioning)
Commits: "feat: add feature" → 0.2.0
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@letuscode/openrouter-cli",
"version": "0.1.7",
"version": "0.1.9-beta.0",
"description": "CLI tool for OpenRouter (OpenAI-compatible)",
"bin": {
"openrouter": "bin/openrouter"
Expand Down