# OpenCode

> What OpenCode did with an OTF kit in our test on a free model, what we did not check, and what the free-model data terms mean for your code.

OpenCode is an open-source terminal coding agent. It can run models from OpenCode Zen, a list that includes free models. We tested it on one kit, with one prompt, on 13 October 2026. The agent added a page across three files. We did not run that page in an app.

We checked OpenCode's docs on 13 October 2026. Check them again before you rely on the details.

Free models change. OpenCode calls its free models free for a limited time, so check the model list before you rely on one.

## What we ran

- **Tool:** OpenCode 1.19.0, installed from npm (`opencode-ai`).
- **Kit:** the SaaS Dashboard kit, in a clean copy of the kit's main branch.
- **Prompt:** the kit's `ai/prompts/add-screen.md`, with the page name set to "Reports". We added one line of limits: edit only the three files, and do not start a dev server, run a build, run an app or server, run database commands, or commit.
- **Model for the recorded run:** `space-bunny-free`, on OpenCode Zen. OpenCode's Zen docs list it as zero-retention.
- **Date:** 13 October 2026.

## What happened

- The first run, on another free model (Big Pickle), stopped partway with `Bad Request`. A rerun on Big Pickle finished. We then reset the copy and ran the same prompt once on Space Bunny Free, which is the recorded run below. We have not found the cause of the first failure.
- The recorded run exited with status 0 in about 80 seconds. It changed three files: a new `src/pages/home/reports.tsx`, a lazy route in `src/main.tsx`, and a sidebar item in `src/components/Sidebar.tsx`. That is 224 lines added and one removed.
- The new page uses the kit's token classes, with no hex or `hsl()` colour values. It has a loading skeleton, an empty state and a `FadeIn` wrapper, as the prompt asked.
- On 13 October 2026, the kit's own type-check passes in a fresh install. Our test change added no type errors.

## Data

OpenCode's Zen privacy section says its providers follow a zero-retention policy and do not use your data for model training, except for a named list of exceptions. Big Pickle is on that list: during its free period, collected data may be used to improve the model. Our earlier runs sent kit files to Big Pickle. We no longer send kit source to a model that may use it. The model we used for the recorded run is not on the exceptions list. These are OpenCode's stated terms, and we have not checked them ourselves.

Free models may use what you send them. Keep private code out of a free model unless you have read that model's terms.

Source: [OpenCode Zen](https://opencode.ai/docs/zen/).

## Free for a limited time

OpenCode says its free models are free for a limited time. A free model can change or stop being free. The model list in OpenCode is the place to check. The cost of zero in our notes comes from OpenCode's pricing table. We did not check a bill.

## Where to start

Open the kit in OpenCode, Cursor or Claude Code. The SaaS Dashboard kit ships an `AGENTS.md` at its root, which OpenCode reads, and a `CLAUDE.md` and a `.cursorrules` for other tools. The [getting started guide](/docs/getting-started) has the steps.

## What we did not check

- We did not run the new page in the app. We started no dev server and ran no build or browser check, so we have not seen the page rendered.
- The type-check comparison is the only check we ran on the change. We did not run lint or the kit's tests.
- We did not commit or push the agent's changes.
- We ran one prompt, on one kit, three times. The first run on Big Pickle failed. A second Big Pickle run and a Space Bunny Free run finished. We did not measure how often it works.
- We did not test other agents on the same prompt, or any model other than Big Pickle and Space Bunny Free.
- "Zero-retention" is OpenCode's stated policy. We did not verify how the provider handles data.
- The cost of zero comes from OpenCode's pricing table, not from a bill.
