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
30 changes: 15 additions & 15 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ echo '{"message":"hi"}' | agent
opencode:

```bash
echo '{"message":"hi"}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"hi"}' | opencode run --format json --model opencode/big-pickle
```

### Plain Text Input (@link-assistant/agent only)
Expand All @@ -60,7 +60,7 @@ echo '{"message":"hello world"}' | agent
**opencode:**

```bash
echo '{"message":"hello world"}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"hello world"}' | opencode run --format json --model opencode/big-pickle
```

## File Operations
Expand All @@ -78,7 +78,7 @@ echo '{"message":"run command","tools":[{"name":"bash","params":{"command":"echo
**opencode:**

```bash
echo '{"message":"run command","tools":[{"name":"bash","params":{"command":"echo hello world"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"run command","tools":[{"name":"bash","params":{"command":"echo hello world"}}]}' | opencode run --format json --model opencode/big-pickle
```

**Example with description:**
Expand All @@ -100,7 +100,7 @@ echo '{"message":"read file","tools":[{"name":"read","params":{"file_path":"/pat
**opencode:**

```bash
echo '{"message":"read file","tools":[{"name":"read","params":{"file_path":"/path/to/file.txt"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"read file","tools":[{"name":"read","params":{"file_path":"/path/to/file.txt"}}]}' | opencode run --format json --model opencode/big-pickle
```

### write Tool
Expand All @@ -116,7 +116,7 @@ echo '{"message":"write file","tools":[{"name":"write","params":{"file_path":"/t
**opencode:**

```bash
echo '{"message":"write file","tools":[{"name":"write","params":{"file_path":"/tmp/test.txt","content":"Hello World"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"write file","tools":[{"name":"write","params":{"file_path":"/tmp/test.txt","content":"Hello World"}}]}' | opencode run --format json --model opencode/big-pickle
```

### edit Tool
Expand All @@ -132,7 +132,7 @@ echo '{"message":"edit file","tools":[{"name":"edit","params":{"file_path":"/tmp
**opencode:**

```bash
echo '{"message":"edit file","tools":[{"name":"edit","params":{"file_path":"/tmp/test.txt","old_string":"Hello","new_string":"Hi"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"edit file","tools":[{"name":"edit","params":{"file_path":"/tmp/test.txt","old_string":"Hello","new_string":"Hi"}}]}' | opencode run --format json --model opencode/big-pickle
```

### list Tool
Expand All @@ -148,7 +148,7 @@ echo '{"message":"list directory","tools":[{"name":"list","params":{"path":"."}}
**opencode:**

```bash
echo '{"message":"list directory","tools":[{"name":"list","params":{"path":"."}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"list directory","tools":[{"name":"list","params":{"path":"."}}]}' | opencode run --format json --model opencode/big-pickle
```

## Search Tools
Expand All @@ -170,7 +170,7 @@ echo '{"message":"find ts files","tools":[{"name":"glob","params":{"pattern":"sr
**opencode:**

```bash
echo '{"message":"find js files","tools":[{"name":"glob","params":{"pattern":"**/*.js"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"find js files","tools":[{"name":"glob","params":{"pattern":"**/*.js"}}]}' | opencode run --format json --model opencode/big-pickle
```

### grep Tool
Expand All @@ -193,7 +193,7 @@ echo '{"message":"search error","tools":[{"name":"grep","params":{"pattern":"err
**opencode:**

```bash
echo '{"message":"search pattern","tools":[{"name":"grep","params":{"pattern":"TODO","output_mode":"content"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"search pattern","tools":[{"name":"grep","params":{"pattern":"TODO","output_mode":"content"}}]}' | opencode run --format json --model opencode/big-pickle
```

### websearch Tool
Expand All @@ -211,7 +211,7 @@ echo '{"message":"search web","tools":[{"name":"websearch","params":{"query":"Re
**opencode (requires OPENCODE_EXPERIMENTAL_EXA=true):**

```bash
echo '{"message":"search web","tools":[{"name":"websearch","params":{"query":"TypeScript latest features"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"search web","tools":[{"name":"websearch","params":{"query":"TypeScript latest features"}}]}' | opencode run --format json --model opencode/big-pickle
```

### codesearch Tool
Expand All @@ -229,7 +229,7 @@ echo '{"message":"search code","tools":[{"name":"codesearch","params":{"query":"
**opencode (requires OPENCODE_EXPERIMENTAL_EXA=true):**

```bash
echo '{"message":"search code","tools":[{"name":"codesearch","params":{"query":"React hooks implementation"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"search code","tools":[{"name":"codesearch","params":{"query":"React hooks implementation"}}]}' | opencode run --format json --model opencode/big-pickle
```

## Execution Tools
Expand All @@ -252,7 +252,7 @@ mkdir -p .link-assistant-agent
echo '{"experimental":{"batch_tool":true}}' > .link-assistant-agent/opencode.json

# Then run
echo '{"message":"run batch","tools":[{"name":"batch","params":{"tool_calls":[{"tool":"bash","parameters":{"command":"echo hello"}},{"tool":"bash","parameters":{"command":"echo world"}}]}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"run batch","tools":[{"name":"batch","params":{"tool_calls":[{"tool":"bash","parameters":{"command":"echo hello"}},{"tool":"bash","parameters":{"command":"echo world"}}]}}]}' | opencode run --format json --model opencode/big-pickle
```

### task Tool
Expand All @@ -268,7 +268,7 @@ echo '{"message":"launch task","tools":[{"name":"task","params":{"description":"
**opencode:**

```bash
echo '{"message":"launch task","tools":[{"name":"task","params":{"description":"Analyze codebase","prompt":"Find all TODO comments in JavaScript files","subagent_type":"general-purpose"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"launch task","tools":[{"name":"task","params":{"description":"Analyze codebase","prompt":"Find all TODO comments in JavaScript files","subagent_type":"general-purpose"}}]}' | opencode run --format json --model opencode/big-pickle
```

## Utility Tools
Expand All @@ -290,7 +290,7 @@ echo '{"message":"read todos","tools":[{"name":"todoread","params":{}}]}' | agen
**opencode:**

```bash
echo '{"message":"add todos","tools":[{"name":"todowrite","params":{"todos":[{"content":"Implement feature X","status":"pending","activeForm":"Implementing feature X"}]}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"add todos","tools":[{"name":"todowrite","params":{"todos":[{"content":"Implement feature X","status":"pending","activeForm":"Implementing feature X"}]}}]}' | opencode run --format json --model opencode/big-pickle
```

### webfetch Tool
Expand All @@ -306,7 +306,7 @@ echo '{"message":"fetch url","tools":[{"name":"webfetch","params":{"url":"https:
**opencode:**

```bash
echo '{"message":"fetch url","tools":[{"name":"webfetch","params":{"url":"https://example.com","prompt":"Summarize the content"}}]}' | opencode run --format json --model opencode/kimi-k2.5-free
echo '{"message":"fetch url","tools":[{"name":"webfetch","params":{"url":"https://example.com","prompt":"Summarize the content"}}]}' | opencode run --format json --model opencode/big-pickle
```

## Output Format
Expand Down
16 changes: 7 additions & 9 deletions FREE_MODELS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

This document lists all free AI models currently supported by the agent. Free models require no API key and are available for immediate use.

> **Last Updated:** February 2026
> **Last Updated:** March 2026

## Quick Start

Use any free model with the `--model` flag:

```bash
echo "hello" | agent --model opencode/kimi-k2.5-free
echo "hello" | agent --model opencode/minimax-m2.5-free
```

## OpenCode Zen Free Models
Expand All @@ -18,18 +18,14 @@ echo "hello" | agent --model opencode/kimi-k2.5-free

| Model | Model ID | Description |
| ----------------- | ----------------------------- | ------------------------------------------------ |
| Kimi K2.5 Free | `opencode/kimi-k2.5-free` | **Recommended.** Best free model for coding tasks |
| MiniMax M2.5 Free | `opencode/minimax-m2.5-free` | Strong general-purpose performance |
| MiniMax M2.5 Free | `opencode/minimax-m2.5-free` | **Recommended.** Strong general-purpose performance |
| GPT 5 Nano | `opencode/gpt-5-nano` | Reliable OpenAI-powered free option |
| Big Pickle | `opencode/big-pickle` | Stealth model, free during evaluation period |

### Usage Examples

```bash
# Kimi K2.5 Free (recommended)
echo "hello" | agent --model opencode/kimi-k2.5-free

# MiniMax M2.5 Free
# MiniMax M2.5 Free (recommended)
echo "hello" | agent --model opencode/minimax-m2.5-free

# GPT 5 Nano
Expand Down Expand Up @@ -81,6 +77,7 @@ The following models were previously free but are no longer available:

| Model | Former Model ID | Status |
| ------------------ | ----------------------------- | ---------------------------------------- |
| Kimi K2.5 Free | `opencode/kimi-k2.5-free` | Removed from OpenCode Zen (March 2026) — see [issue #208](https://github.com/link-assistant/agent/issues/208) |
| Grok Code Fast 1 | `opencode/grok-code` | Discontinued January 2026 |
| MiniMax M2.1 Free | `opencode/minimax-m2.1-free` | Replaced by `opencode/minimax-m2.5-free` |
| GLM 4.7 Free | `opencode/glm-4.7-free` | No longer free on OpenCode Zen |
Expand All @@ -93,7 +90,7 @@ The following models were previously free but are no longer available:

### Use OpenCode Zen when:
- You want the most tested and reliable free models
- You prefer `kimi-k2.5-free` as the recommended choice
- You prefer `minimax-m2.5-free` as the recommended choice
- You need a simple, curated list of models

### Use Kilo Gateway when:
Expand All @@ -106,6 +103,7 @@ The following models were previously free but are no longer available:
The agent intelligently routes model requests:

- `minimax-m2.5-free` without provider prefix → OpenCode Zen (`opencode/minimax-m2.5-free`)
- `big-pickle` without provider prefix → OpenCode Zen (`opencode/big-pickle`)
- `kilo/minimax-m2.5-free` explicitly → Kilo Gateway

---
Expand Down
25 changes: 14 additions & 11 deletions MODELS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ Below are the prices per 1M tokens for OpenCode Zen models. Models are sorted by
| Model | Model ID | Input | Output | Cached Read | Cached Write |
| ---------------------------------------- | ----------------------------- | ------ | ------ | ----------- | ------------ |
| **Free Models (Output: $0.00)** |
| Kimi K2.5 Free (recommended) | `opencode/kimi-k2.5-free` | Free | Free | Free | - |
| MiniMax M2.5 Free | `opencode/minimax-m2.5-free` | Free | Free | Free | - |
| MiniMax M2.5 Free (recommended) | `opencode/minimax-m2.5-free` | Free | Free | Free | - |
| GPT 5 Nano | `opencode/gpt-5-nano` | Free | Free | Free | - |
| Big Pickle | `opencode/big-pickle` | Free | Free | Free | - |
| **Discontinued Free Models** |
| ~~Kimi K2.5 Free~~ | `opencode/kimi-k2.5-free` | ~~Free~~ | ~~Free~~ | ~~Free~~ | - |
| ~~Grok Code Fast 1~~ | `opencode/grok-code` | ~~Free~~ | ~~Free~~ | ~~Free~~ | - |
| ~~MiniMax M2.1 Free~~ | `opencode/minimax-m2.1-free` | ~~Free~~ | ~~Free~~ | ~~Free~~ | - |
| ~~GLM 4.7 Free~~ | `opencode/glm-4.7-free` | ~~Free~~ | ~~Free~~ | ~~Free~~ | - |
Expand All @@ -58,38 +58,41 @@ Below are the prices per 1M tokens for OpenCode Zen models. Models are sorted by

## Default Model

The default model is **Kimi K2.5 Free** (`opencode/kimi-k2.5-free`), which is completely free and recommended for coding tasks.
The default model is **MiniMax M2.5 Free** (`opencode/minimax-m2.5-free`), which is completely free and recommended for coding tasks.

> **Note:** Big Pickle (`opencode/big-pickle`) was previously the default free model, but MiniMax M2.5 Free is now the recommended choice.

> **Note:** Kimi K2.5 Free (`opencode/kimi-k2.5-free`) was previously the default free model, but it was removed from the OpenCode Zen provider in March 2026. See [Case Study #208](docs/case-studies/issue-208/README.md) for details.

> **Note:** Grok Code Fast 1 (`opencode/grok-code`) was previously the default free model, but xAI ended the free tier for this model on OpenCode Zen in January 2026. **The grok-code model is no longer included as a free model in OpenCode Zen subscription.** See [Case Study #133](docs/case-studies/issue-133/README.md) for details.

### Free Models (in order of recommendation)

1. **Kimi K2.5 Free** (`opencode/kimi-k2.5-free`) - Best recommended free model
2. **MiniMax M2.5 Free** (`opencode/minimax-m2.5-free`) - Good alternative (upgraded from M2.1)
3. **GPT 5 Nano** (`opencode/gpt-5-nano`) - Reliable free option
4. **Big Pickle** (`opencode/big-pickle`) - Basic free model
1. **MiniMax M2.5 Free** (`opencode/minimax-m2.5-free`) - Recommended free model (strong general-purpose performance)
2. **GPT 5 Nano** (`opencode/gpt-5-nano`) - Reliable OpenAI-powered free option
3. **Big Pickle** (`opencode/big-pickle`) - Stealth model, free during evaluation

> **Note:** `opencode/minimax-m2.1-free` and `opencode/glm-4.7-free` are no longer available as free models on OpenCode Zen. See [OpenCode Zen Documentation](https://opencode.ai/docs/zen/) for the current list of free models.
> **Note:** `opencode/kimi-k2.5-free`, `opencode/minimax-m2.1-free`, and `opencode/glm-4.7-free` are no longer available as free models on OpenCode Zen. See [OpenCode Zen Documentation](https://opencode.ai/docs/zen/) for the current list of free models.

## Usage Examples

### Using the Default Model (Free)

```bash
# Uses opencode/kimi-k2.5-free by default
# Uses opencode/minimax-m2.5-free by default
echo "hello" | agent
```

### Using Other Free Models

```bash
# MiniMax M2.5 Free
# MiniMax M2.5 Free (recommended free)
echo "hello" | agent --model opencode/minimax-m2.5-free

# GPT 5 Nano
echo "hello" | agent --model opencode/gpt-5-nano

# Big Pickle (basic free)
# Big Pickle
echo "hello" | agent --model opencode/big-pickle
```

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ See [rust/README.md](rust/README.md) for full documentation.

We're creating a slimmed-down, public domain version of OpenCode CLI focused on the "agentic run mode" for use in virtual machines, Docker containers, and other environments where unrestricted AI agent access is acceptable. This is **not** for general desktop use - it's for isolated environments where you want maximum AI agent freedom.

**OpenCode Compatibility**: We maintain 100% compatibility with OpenCode's JSON event streaming format, so tools expecting `opencode run --format json --model opencode/kimi-k2.5-free` output will work with our agent-cli.
**OpenCode Compatibility**: We maintain 100% compatibility with OpenCode's JSON event streaming format, so tools expecting `opencode run --format json --model opencode/minimax-m2.5-free` output will work with our agent-cli.

## Why Choose Agent Over OpenCode?

Expand Down Expand Up @@ -123,7 +123,7 @@ echo '{"message":"hi"}' | agent
**With custom model:**

```bash
echo "hi" | agent --model opencode/kimi-k2.5-free
echo "hi" | agent --model opencode/minimax-m2.5-free
```

**Direct prompt mode:**
Expand Down
Loading