142 lines
4.1 KiB
Plaintext
142 lines
4.1 KiB
Plaintext
---
|
|
title: OpenCode
|
|
description: Using Context7 with OpenCode
|
|
---
|
|
|
|
Context7 integrates with [OpenCode](https://opencode.ai/) to provide current library documentation instead of relying on training data. Get accurate, up-to-date code examples directly in your coding sessions.
|
|
|
|
<Info>
|
|
For more details on MCP server configuration in OpenCode, see the [OpenCode MCP documentation](https://opencode.ai/docs/mcp-servers/).
|
|
</Info>
|
|
|
|
## Installation
|
|
|
|
Run the setup command to configure Context7 for OpenCode:
|
|
|
|
```bash
|
|
npx ctx7 setup --opencode
|
|
```
|
|
|
|
Authenticates via OAuth, generates an API key, and installs the appropriate skill. You can choose between CLI or MCP mode.
|
|
|
|
You can also install Context7 as an [OpenCode plugin](#plugin). It bundles the MCP server with a skill:
|
|
|
|
```bash
|
|
opencode plugin @upstash/context7-opencode
|
|
```
|
|
|
|
Restart OpenCode after installing, then authenticate the plugin:
|
|
|
|
```bash
|
|
opencode mcp auth context7
|
|
```
|
|
|
|
Complete the OAuth flow in your browser to use your account's rate limits. If you skip this command, the browser opens automatically on the first lookup.
|
|
|
|
For manual MCP installation or other configuration options, see [All MCP Clients](/resources/all-clients).
|
|
|
|
---
|
|
|
|
## Plugin
|
|
|
|
Install the plugin from your project directory:
|
|
|
|
```bash
|
|
opencode plugin @upstash/context7-opencode
|
|
```
|
|
|
|
The plugin is an alternative to `ctx7 setup` that configures OpenCode in one command. It adds two things:
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="MCP Server" icon="server">
|
|
The tools for fetching documentation (`context7_resolve-library-id`, `context7_query-docs`)
|
|
</Card>
|
|
<Card title="Skills" icon="sparkles">
|
|
`context7-mcp` auto-triggers documentation lookups when you ask about libraries
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
You can also add the plugin to your config by hand:
|
|
|
|
```json opencode.json
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"plugin": ["@upstash/context7-opencode"]
|
|
}
|
|
```
|
|
|
|
### API Key
|
|
|
|
The plugin uses OAuth by default and needs no configuration. To use an API key instead, for example on a headless machine, export it before launching OpenCode:
|
|
|
|
```bash
|
|
export CONTEXT7_API_KEY="your-api-key"
|
|
```
|
|
|
|
The plugin picks up `CONTEXT7_API_KEY` automatically and sends it as an `Authorization` header. You can also pass it through the plugin options:
|
|
|
|
```json opencode.json
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"plugin": [["@upstash/context7-opencode", { "apiKey": "your-api-key" }]]
|
|
}
|
|
```
|
|
|
|
Create or manage API keys in the [Context7 dashboard](https://context7.com/dashboard).
|
|
|
|
Everything the plugin adds is additive, and your own configuration always wins. If your `opencode.json` already defines an MCP server named `context7`, the plugin leaves it alone. It is also safe to run both `ctx7 setup` and the plugin, since OpenCode loads the `context7-mcp` skill once.
|
|
|
|
---
|
|
|
|
## Using Context7
|
|
|
|
With `ctx7 setup` or the plugin, a skill is installed that triggers automatically when you ask about libraries. You can also invoke it explicitly:
|
|
|
|
```
|
|
use context7 to show me how to set up middleware in Next.js 15
|
|
use context7 for Prisma query examples with relations
|
|
use context7 for the Supabase syntax for row-level security
|
|
```
|
|
|
|
If you know the library ID, use it directly to skip resolution:
|
|
|
|
```
|
|
use context7 with /supabase/supabase for authentication docs
|
|
use context7 with /vercel/next.js for app router setup
|
|
```
|
|
|
|
You can also add instructions to your `AGENTS.md` file:
|
|
|
|
```markdown AGENTS.md
|
|
When you need to search docs, use Context7.
|
|
```
|
|
|
|
---
|
|
|
|
## Tips
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="Getting Better Results">
|
|
- Be specific about what you're trying to do, not just which library
|
|
- Mention versions when they matter
|
|
- If the first result isn't right, ask for a different part of the docs
|
|
|
|
```
|
|
# Good
|
|
How do I handle file uploads with the Supabase Storage API?
|
|
|
|
# Less specific
|
|
How does Supabase storage work?
|
|
```
|
|
</Accordion>
|
|
|
|
<Accordion title="Project-Level Configuration">
|
|
You can place your `opencode.json` in your project directory to have project-specific configurations. This is useful when:
|
|
|
|
- Different projects need different API keys
|
|
- You want to share the config with your team via version control
|
|
- A project requires specific Context7 settings
|
|
</Accordion>
|
|
|
|
</AccordionGroup>
|