Skip to content

v1.2.0: SQLite Database Refactoring

Release Date: February 14, 2026


One-Sentence Summary

This update migrates OpenCode's data storage from scattered files to a unified SQLite database, delivering better stability and faster queries. It also adds --dir and --timeout command-line arguments.


Important Notice: Data Migration on First Launch

What is this?

OpenCode 1.2.0 migrates all session data from multiple small files into a single SQLite database file.

How does it affect you?

Migration runs automatically on first launch. Depending on your data size, it may take a few seconds to a few minutes.

What if migration fails?

  1. Original data is not deleted, so you can safely downgrade
  2. To re-run migration, delete the database files:
    • macOS/Linux: ~/.local/share/opencode/opencode.db*
    • Windows: %APPDATA%\opencode\opencode.db*
  3. If you encounter issues, please submit a GitHub Issue with "sqlite" in the title

New Features: Enhanced Command-Line Arguments

--dir Argument: Specify Working Directory

You can now specify the working directory when running an Agent:

bash
# Run in a specific directory
opencode run --dir /path/to/project "Fix the login page bug"

--timeout Argument: Set Timeout Duration

Timeout configuration moved from API to CLI, making it easier to control:

bash
# Set a 5-minute timeout
opencode --timeout 300

SDK Update: PartDelta Event

If you use OpenCode SDK to develop applications, there's a new PartDelta event that sends only incremental changes of text, rather than sending the full content each time:

typescript
PartDelta: BusEvent.define(
  "message.part.delta",
  z.object({
    sessionID: z.string(),
    messageID: z.string(),
    partID: z.string(),
    field: z.string(),
    delta: z.string(),
  }),
)

Benefits: Reduced data transfer and better real-time performance.


Desktop Improvements

  • Terminal window resizing no longer causes issues
  • Performance optimization for large file diff display
  • Use prompt_async for VPN/tunnel connections to avoid timeouts
  • Auto-reconnect when server address changes

Bug Fixes

TUI No Longer Crashes on Tool Parameter Errors

Previously, if tool input format was incorrect, opencode run would crash directly. Now it handles errors gracefully.


Should You Upgrade?

SituationRecommendation
Large data volume, want better performance✅ Upgrade
Desktop user with large file diff needs✅ Upgrade
Everything works fineYou can wait a few days

Upgrade command:

bash
opencode upgrade

Technical Details (Optional)

Click to expand full changelog

Core

  • Reverted to SQLite database implementation
  • Moved timeout configuration from API to CLI arguments
  • Updated AI SDK packages to support Claude Opus 4.6 adaptive reasoning

TUI (Terminal Interface)

  • Fixed crash caused by tool input format errors
  • Added --dir argument to run command

Desktop

  • Fixed Rust compilation issues
  • Removed OPENCODE_SQLITE environment variable
  • Fixed terminal resizing
  • Use prompt_async for VPN connections to avoid timeouts
  • Remount SDK when server address changes
  • Performance optimization for large file diff display

Community Contributors (12)

  • @BlankParticle: Added --dir argument
  • @neriousy: Large file diff performance optimization
  • @Seungjun0906: Documentation sync, Korean translation
  • @ysm-dev: Server address change reconnection
  • @Annopick: Chinese documentation fixes
  • @eytans: VPN timeout fix
  • @G36maid: Arch Linux pacman installation documentation
  • @yanhao98: Timeout configuration migration
  • @niushuai1991: Chinese documentation standardization
  • @kitlangton: Inline code link support
  • @0xK3vin: Tool input error handling
  • @Brendonovich: Desktop Rust fix

← Back to Changelog