openeditorcode.devdocumentation/openeditorcode-siteEspañol
  OOOO    EEEEEE   CCCCC
 O    O   EE       CC
 O    O   EEEE     CC
 O    O   EE       CC
  OOOO    EEEEEE   CCCCC

OpenEditorCode

OpenEditorCode is a keyboard-first editor for exploring, editing, searching, and reviewing Git changes without leaving your terminal.

OPEN AND MOVE BETWEEN PANESF7F8Ctrl+Shift+Left / Right
SHOW / HIDE EXPLORERSHOW / HIDE CHANGESMOVE BETWEEN PANES
ONE WORKSPACE, FOUR RHYTHMS

Keep the whole project within reach.

OEC keeps the operations that shape a coding session close together, while your project stays local.

01

Map the project

Browse a virtualized tree and rank text files by line count, excluding paths ignored by root and nested .gitignore files.

02

Work the document

Edit across tabs, format source, read richer Markdown and toggle SVG preview/XML with F4.

03

Find the path

Keep a hierarchical name/content filter in Explorer, or use advanced project search, respecting .gitignore.

04

Read the change

Select nested Git repositories, stage and commit, sync, and inspect aligned diffs and history.

BUILT FOR THE PROJECT ROOT

Useful boundaries. Fewer surprises.

01

Local by design

Edit locally without OpenCode or a server. Git remotes and installation updates use the network when requested or enabled.

02

Guarded files

Project document helpers validate paths and reject binary, invalid UTF-8, and oversized text. The reference explains scope and limits.

03

Your configuration

Global settings live outside projects. A project may override preferences in .oec/config.json.

04

Keyboard complete

Explorer, editor, search, dialogs, and Git changes remain operable without a mouse.

OEC in actionOEC 0.2.43

Real recording with visible shortcuts: edit and save, review the Git diff, toggle Markdown with F4 and rank massive files by lines. Excludes paths ignored by root and nested .gitignore files.

Text version
  1. Open src/greeting.ts from the explorer.
  2. Change Hello to Hello, OEC! and save with Ctrl+S.
  3. Review the previous and new versions in the Git diff.
  4. Open README.md and switch preview/source with F4.
  5. Ctrl+P → massive files: catalog.ts (420 lines) before report.ts (180). Open the first result.
  6. node_modules and samples/cache are excluded by root and nested .gitignore rules. Complexity is not measured.
Standalone OEC 0.2.43Enlarge screenshot ↗
OEC 0.2.43 welcome screen, left explorer, central keyboard guide and right Git pane.
Standalone application: no OpenCode or server required. F7 toggles Explorer and F8 Changes. Captured from the published binary, not by retouching an older version.
OEC 0.2.43 / Massive filesEnlarge screenshot ↗
Massive files ranked by line count: catalog.ts with 420 and report.ts with 180; ignored dependencies and cache files are absent.
From Ctrl+P or [Masivos], find the text files with the most lines. Files and folders ignored by .gitignore, including nested rules, are excluded. The demo verifies node_modules and samples/cache stay out of the ranking. This is not complexity analysis.
OPTIONAL INTEGRATION / PUBLIC NPM PACKAGE · v0.3.7

Stay in the conversation. Work the file.

Explore, edit and review your project inside OpenCode 2. Keep the conversation open, then jump into your own document tabs without losing edits, cursor or scroll.

The plugin in actionPlugin 0.3.7 · OpenCode 2.1.1

Real recording with visible shortcuts in an empty example session: Files → editor → Ctrl+S → repository/branch Diff → conversation/editor with F6. No model requests are made.

Text version
  1. Open src/greeting.ts from Files.
  2. Edit the greeting and save without leaving OpenCode.
  3. Open the diff and compare Hello with Hello, OEC!.
  4. Return to the conversation with F6, then press F6 again to restore the tabs.
01 / Plugin 0.3.7 beside the sessionEnlarge screenshot ↗
Plugin 0.3.7 in an empty OpenCode session, with Files and Diff for the fictional project.
Files and Diff live alongside the conversation. This session is empty: no model requests or personal conversations. F7 and F8 control each section independently; F6 returns to the editor.
View a readable detail of Files and DiffFiles and Diff detail with the count, repository, branch and responsive controls.

Crop of the new session capture; panel contents are not altered.

01 / OPENCODEConversationF7 · right-side explorer
F6
02 / OECEditor + right-side filesCtrl+S · save / Tab · focus
02 / Plugin 0.3.7 editorEnlarge screenshot ↗
Plugin 0.3.7 editor with greeting.ts, TypeScript highlighting, tabs and Files/Diff panels.
The integrated editor has its own tabs, line numbers and highlighting. Ctrl+S saves, Ctrl+F finds, Ctrl+L wraps lines and Tab changes focus. F6 returns to the conversation while retaining documents and panels.
  • Files: name/path or literal content filtering with Ctrl+F; F2 rename
  • Files/Diff share remaining height; expanded/compact modes and independent scrolling
  • Local Git colors: green additions, red deletions and blue staged indicators
  • F4: edit the current diff file or toggle Markdown/SVG preview and source
  • Static local SVG, raster images, richer Markdown and contextual Ctrl+P commands
One folder, multiple repositoriesPlugin 0.3.7 · OpenCode 2.1.1

Three independent Git repositories inside a folder with no .git of its own. Diff separates each repository's branch, count and files, including the clean repository. Both src/config.ts files open their own diffs and F4 never mixes their paths. No Getting started card.

Text version
  1. Open the parent folder: apps/api, apps/web and packages/shared have their own Git history.
  2. Diff (2) totals two modified files: one in API on feature/auth and one in web on feature/header.
  3. Open apps/api/src/config.ts: API v1 → API v2; F4 opens its current version.
  4. Open apps/web/src/config.ts: Web v1 → Web v2; the matching relative filename belongs to a different repository.
  5. packages/shared on main stays visible with No changes. White circle: changed; blue: clean.
  6. Return with F6 and use Collapse: files hide, but repositories and branches remain. F7 hides Files to give Diff more space.

No need to merge them into one repository.

Open the folder containing your projects in OpenCode and authorize that local directory. Each repository keeps its branch, history and files. Diff groups changes by repository; this is not one shared branch or a Git monorepo.

Example folder: the root has no .gittext
workspace/
├── apps/api/        # .git · feature/auth · 1 modified file
├── apps/web/        # .git · feature/header · 1 modified file
└── packages/shared/ # .git · main · clean

Diff (2) counts unique files per repository: two files called src/config.ts count as two because they belong to different repositories. One file with both staged and unstaged changes counts once within its repository; its areas can be inspected separately. F4 always resolves the selected repository's file. The plugin only reads Git: it does not merge histories, commit or discard changes.

How discovery works and its limits →
03 / MARKDOWN + IMAGES

Not every file is code.

Read formatted Markdown and press F4 to edit. Open PNG, JPEG, GIF or WebP from Files: each appears in its own tab without leaving the terminal.

View images and configure your terminal →
04 / LOCAL GIT

From change to context.

Inspect staged and disk changes in the Diff tree. Enter opens the file diff; F4 opens its current editable version without closing the comparison. The plugin does not commit or discard work.

Understand Diff and its tabs →

Add it to OpenCode. Not to your OEC installation.

Locate configuration with opencode debug paths config and merge this entry into plugins in global cli.json, preserving existing settings. Restart and confirm local project access.

Windows and Linux · global cli.jsonjson
{
  "$schema": "https://opencode.ai/v2/cli.json",
  "plugins": [
    {
      "package": "@2jmalvarez/opencode-editor@0.3.7",
      "options": {
        "toggleBinding": "f6",
        "filesBinding": "f7",
        "diffBinding": "f8",
        "explorerWidth": 30
      }
    }
  ]
}

Available now: OEC 0.2.43 and plugin 0.3.7, published and verified. Includes nested .gitignore support, draggable editor scrollbars, Spanish/English plugin UI and responsive repository/branch Diff controls.

Defaults · F6 conversation/editor · F7 Files · F8 Diff. Standalone OEC remains independent. This plugin does not include all standalone capabilities.

START WITHOUT A TOUR

The essential keys are already nearby.

View all commands →
Ctrl+P
Command palette
F7
Toggle Explorer
Ctrl+Alt+F
Search the project
Alt+Shift+F
Format document
THE FIELD MANUAL

A key is only the beginning.

Every action, its context and its limits. From your first file to the editor’s architecture, in Spanish and English.

100 actions44 properties21 chapters
Explore documentation →
INSTALLATION / OEC v0.2.43

Your terminal. Your way to install.

Choose one method for the standalone editor, or integrate it into OpenCode as a plugin.

Windows x64 / Linux x64 (glibc)STANDALONE

One command. Your editor is ready.

Install the standalone editor with npm. Requires Node.js 18 or later and npm.

Run in your terminalshell
npm install -g openeditorcode

Open a project with oec . or openeditorcode .

Requirements and full guide →
Linux x64 (glibc) / BashSTANDALONE

Straight to Linux. No Node.js.

Download the binary with the official installer. Requires Bash, curl and sha256sum; no npm or Bun needed.

Official installer · Bashbash
curl -fsSL https://raw.githubusercontent.com/2jmalvarez/openeditorcode/main/install.sh | bash

Installs into ~/.local/bin and verifies SHA-256. Reopen your terminal and run oec .

You can download and inspect the script before running it. Choose one method to avoid conflicting installations.

Requirements and full guide →
Windows x64STANDALONE

Native on Windows. No admin needed.

Install the binary with PowerShell 5.1 or later. No Node.js, npm or Bun; no execution policy changes.

Official installer · PowerShellpowershell
& ([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/2jmalvarez/openeditorcode/main/install.ps1').Content))

Verifies SHA-256 and updates user and session PATH. Then run oec .

You can download and inspect the script before running it. Choose one method to avoid conflicting installations.

Requirements and full guide →
OpenCode 2 / Windows / LinuxPLUGIN v0.3.7

Your editor inside OpenCode.

Does not install the standalone editor. Locate your configuration with opencode debug paths config and merge this plugins entry into global cli.json, preserving your other settings.

Global cli.json · merge, do not replacejson
{
  "$schema": "https://opencode.ai/v2/cli.json",
  "plugins": [
    {
      "package": "@2jmalvarez/opencode-editor@0.3.7",
      "options": {
        "toggleBinding": "f6",
        "filesBinding": "f7",
        "diffBinding": "f8",
        "explorerWidth": 30
      }
    }
  ]
}

Restart OpenCode, open OEC: opencode-editor from Ctrl+P and confirm local access. F6 switches between conversation and editor.

Installation by name verified with OpenCode 2.1.1. The guide details the Windows/Linux matrix and its limits; do not use plugin versions before 0.3.1 with OpenCode 2.1.x. View status ↗

Requirements and full guide →
COMMUNITY-SUPPORTED OPEN SOURCE

Help OEC keep growing.

Support the development and maintenance of OpenEditorCode and its OpenCode plugin with a one-time or monthly contribution through GitHub Sponsors.

Sponsor on GitHub ↗

Contributions go to the maintainer’s personal account, @2jmalvarez. Payment is handled on GitHub, not on this website. Supporting the project is optional: OEC remains open source.

Explorer visible.v0.2.43