All projects
Personal project · open source (MIT) · 2026

minimide – Hackable Code Editor

A small, Atom-style desktop code editor in about 6,700 lines of JavaScript, with plugins, LSP, a terminal and git built in.

  • JavaScript
  • Electron
  • CodeMirror
  • LSP
  • Desktop app

The idea

The editor you can read in an afternoon. Atom showed that an editor built entirely from plugins is a joy to customise, but it grew too big to understand. minimide keeps that idea in a codebase small enough to read end to end.

Architecture

  • Small core: commands, keymaps, config, a workspace with split panes and tabs, the editor, fuzzy matching, schema-driven settings, and a package loader that gives each plugin a scoped API.
  • Everything else is a plugin: the 13 built-in packages load through the same API that third-party plugins use, and editing a plugin or config file reloads it live.
  • Security model: the renderer has no Node.js access. Every system call goes through one preload bridge with context isolation and sandboxing, and plugins load from a custom mide:// protocol.

Features

  • LSP client: completions, diagnostics, hover, go-to-definition, references, rename, code actions and formatting
  • Integrated terminal (xterm.js and node-pty) and a task runner for npm, Make and Cargo
  • Git: branch switcher, file status, and gutter change markers from its own Myers diff implementation
  • File tree, fuzzy finder, command palette, project-wide regex find and replace, Markdown preview and three themes

Published plugins

I also wrote and published three small third-party plugins against the public plugin API. Each runs sandboxed and asks for no permissions:

  • Insert: inserts a UUID, the date or time, a timestamp, a random password or lorem ipsum, from a picker that previews each one
  • Word Goal: shows the word count of the current file against a goal in the status bar
  • Pomodoro: a 25/5-minute focus timer in the status bar, with configurable lengths

Tech

Electron, CodeMirror 6 and Lezer, xterm.js, esbuild and electron-builder, with GitHub Actions building and publishing installers on every tagged release. The plugin API is fully documented.