AI coding agent, built for the terminal. https://opencode.ai
Find a file
2025-04-21 13:42:00 +02:00
cmd reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
internal reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
.gitignore update gitignore 2025-04-21 13:41:27 +02:00
.opencode.json reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
go.mod reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
go.sum reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
main.go reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
README.md reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
sqlc.yaml add initial stuff 2025-03-23 19:19:08 +01:00

OpenCode

⚠️ Early Development Notice: This project is in early development and is not yet ready for production use. Features may change, break, or be incomplete. Use at your own risk.

A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.

OpenCode Demo

Overview

OpenCode is a Go-based CLI application that brings AI assistance to your terminal. It provides a TUI (Terminal User Interface) for interacting with various AI models to help with coding tasks, debugging, and more.

Features

  • Interactive TUI: Built with Bubble Tea for a smooth terminal experience
  • Multiple AI Providers: Support for OpenAI, Anthropic Claude, and Google Gemini models
  • Session Management: Save and manage multiple conversation sessions
  • Tool Integration: AI can execute commands, search files, and modify code
  • Vim-like Editor: Integrated editor with Vim keybindings for text input
  • Persistent Storage: SQLite database for storing conversations and sessions

Installation

# Coming soon
go install github.com/kujtimiihoxha/opencode@latest

Configuration

OpenCode looks for configuration in the following locations:

  • $HOME/.opencode.json
  • $XDG_CONFIG_HOME/opencode/.opencode.json
  • ./.opencode.json (local directory)

You can also use environment variables:

  • ANTHROPIC_API_KEY: For Claude models
  • OPENAI_API_KEY: For OpenAI models
  • GEMINI_API_KEY: For Google Gemini models

Usage

# Start OpenCode
opencode

# Start with debug logging
opencode -d

Keyboard Shortcuts

Global Shortcuts

  • ?: Toggle help panel
  • Ctrl+C or q: Quit application
  • L: View logs
  • Backspace: Go back to previous page
  • Esc: Close current view/dialog or return to normal mode

Session Management

  • N: Create new session
  • Enter or Space: Select session (in sessions list)

Editor Shortcuts (Vim-like)

  • i: Enter insert mode
  • Esc: Enter normal mode
  • v: Enter visual mode
  • V: Enter visual line mode
  • Enter: Send message (in normal mode)
  • Ctrl+S: Send message (in insert mode)

Navigation

  • Arrow keys: Navigate through lists and content
  • Page Up/Down: Scroll through content

Architecture

OpenCode is built with a modular architecture:

  • cmd: Command-line interface using Cobra
  • internal/app: Core application services
  • internal/config: Configuration management
  • internal/db: Database operations and migrations
  • internal/llm: LLM providers and tools integration
  • internal/tui: Terminal UI components and layouts
  • internal/logging: Logging infrastructure
  • internal/message: Message handling
  • internal/session: Session management

Development

Prerequisites

  • Go 1.23.5 or higher

Building from Source

# Clone the repository
git clone https://github.com/kujtimiihoxha/opencode.git
cd opencode

# Build the diff script first
go run cmd/diff/main.go

# Build
go build -o opencode

# Run
./opencode

Acknowledgments

OpenCode builds upon the work of several open source projects and developers:

License

[License information coming soon]

Contributing

[Contribution guidelines coming soon]