whatisgithub

What is opencode-desktop-extensions?

hona/opencode-desktop-extensions — explained in plain English

Analysis updated 2026-05-18

12TypeScriptAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A typed SDK and mod loader that lets developers add custom extensions to the OpenCode Desktop app without modifying the installed program.

Mindmap

mindmap
  root((repo))
    What it does
      Mod loader for OpenCode Desktop
      No app patching needed
    Extension structure
      Manifest file
      Renderer entry
      Optional main entry
    Tech stack
      TypeScript
      Rust
      Bun
    Use cases
      Custom UI additions
      Distributable ocdx packages

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a custom button or panel to the OpenCode Desktop interface without patching the app.

USE CASE 2

Package and distribute a mod as a single .ocdx file other users can drag and drop to install.

USE CASE 3

Build a trusted main-process extension that needs deeper access than the sandboxed renderer allows.

USE CASE 4

Try out example mods like Keep Awake or Vertical Tabs to see what OCDX extensions can do.

What is it built with?

TypeScriptRustElectronBun

How does it compare?

hona/opencode-desktop-extensionsalamops/agetoraza-ali/blendpixel.com
Stars121212
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatehardeasy
Complexity3/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Bun, a Rust toolchain, and Git LFS to build from source, needs the production app already installed.

So what is it?

OCDX is a tool that lets developers add extensions, sometimes called mods, to a desktop application called OpenCode Desktop, without modifying the original installed program. It works by starting the real, already-installed OpenCode Desktop app through a temporary bootstrap process instead of changing its files directly, then loading independent extension packages on top of it from a dedicated mods folder. Each extension is packaged as a single archive file with the .ocdx extension, similar to a zip file, containing a manifest describing the extension's name and version, some code that runs in the app's interface, and any images or other assets it needs. Developers write extensions using a typed toolkit that gives access to different parts of the OpenCode Desktop interface, such as adding a button to the title bar, along with tools for managing an extension's lifecycle, storing small pieces of settings data that automatically save, and fetching bundled asset files. Installing an extension is as simple as placing its .ocdx file into a mods folder, either inside the installed release or in a per-user application data folder depending on the operating system. There is also a built-in settings page inside the app for installing extensions by dragging and dropping a file, downloading one from a link, and turning extensions on or off without restarting. The readme is direct about trust: extension code runs with real access to OpenCode's internal interface, and an extension can optionally include a separate, more privileged piece of code that runs with the same level of access as the main application itself. Because of this, the documentation advises only installing extensions from sources a person actually trusts. Building this project from source requires a JavaScript runtime called Bun, the Rust programming language toolchain, and Git LFS for downloading example assets, since it needs to compile some native launcher code, not just JavaScript. The readme provides separate build and installation instructions for Windows and macOS, and lists several example extensions included in the repository, such as one that keeps a computer from going to sleep and a playful one referencing an old mobile game.

Copy-paste prompts

Prompt 1
Show me how to scaffold a new OCDX extension using defineExtension.
Prompt 2
Explain the difference between renderer code and a trusted main.ts entry in an OCDX extension.
Prompt 3
Walk me through building OCDX from source with Bun and the Rust toolchain.
Prompt 4
How does OCDX's typed state system persist and validate extension settings?

Frequently asked questions

What is opencode-desktop-extensions?

A typed SDK and mod loader that lets developers add custom extensions to the OpenCode Desktop app without modifying the installed program.

What language is opencode-desktop-extensions written in?

Mainly TypeScript. The stack also includes TypeScript, Rust, Electron.

How hard is opencode-desktop-extensions to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is opencode-desktop-extensions for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.