Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Structure

Hone is a monorepo of independent packages. There is no top-level package.json and no workspace manager (no npm workspaces, no Turborepo, no Lerna). Each package stands alone with its own dependencies and build configuration.

Package Directory

DirectoryPurposeRuntime
hone-core/Headless IDE services (workspace, settings, git, search, LSP, DAP, AI, extensions)Bun (tests only)
hone-editor/Embeddable code editor – piece table buffer, multi-cursor, syntax highlighting, diffBun (tests), Perry (native)
hone-ide/IDE workbench shell – activity bar, sidebar, tabs, panels, theme enginePerry (native binary)
hone-terminal/Terminal emulator – VT parser, PTY, cross-platform Rust FFIBun (tests), Perry (native)
hone-auth/Auth service (magic-link login, device pairing, subscriptions) – Fastify serverPerry (native binary, 2.8 MB)
hone-relay/WebSocket sync relay (cross-device delta sync, SQLite persistence)Bun / Perry
hone-build/Plugin build coordinator (submits to perry-hub for cross-platform compilation)Perry (native binary)
hone-marketplace/Plugin marketplace server (marketplace.hone.codes)Perry (native binary)
hone-api/Public extension API types (@honeide/api) – pure declarations, zero runtimetsc only
hone-extensions/11 built-in IDE extensions (TypeScript, Python, Rust, Go, etc.)Perry
hone-extension/V2 plugin SDK (@hone/sdk), Rust plugin host, marketplace client, CLIMixed
hone-themes/15 VSCode-compatible color themes (@honeide/themes) – pure JSON dataJest
hone-brand/Logos, colors, typography, brand guidelinesStatic assets
landing/Landing page (hone.codes) – single index.html, no build stepStatic
account.hone.codes/Account dashboard SPAStatic

How Packages Relate

IDE application

hone-ide is the main application binary. It depends on:

  • hone-editor – the embeddable editor component (buffer, cursors, viewport, syntax highlighting, diff)
  • hone-core – headless IDE services (workspace management, settings, git integration, search, LSP/DAP clients, AI, extension host)
  • hone-terminal – the terminal emulator (VT parsing, PTY management, platform-specific Rust FFI)

Embeddable editor

hone-editor is designed to be used independently of the full IDE. Its core/ directory is entirely platform-independent. Platform-specific rendering lives in native/, with Rust FFI crates for macOS, iOS, Windows, Linux, Android, and Web.

Services

The backend services are standalone binaries, each compiled separately with Perry:

  • hone-auth (port 8445) – authentication, device pairing, JWT tokens
  • hone-relay (port 8443/8444) – WebSocket rooms for cross-device sync
  • hone-marketplace (port 8446) – plugin search, download, publish
  • hone-build (port 8447) – plugin cross-compilation via perry-hub workers

All services run on webserver.skelpo.net with MySQL for persistent storage and SQLite for relay delta persistence.

Extensions and themes

  • hone-extensions/ contains 11 built-in extensions that ship with the IDE.
  • hone-extension/ provides the V2 plugin SDK (@hone/sdk) for third-party extension authors, plus the Rust plugin host and CLI tooling.
  • hone-api/ defines the public extension API surface (@honeide/api) as pure TypeScript declarations with no runtime code.
  • hone-themes/ ships 15 VSCode-compatible color themes as JSON data.

Static sites

  • landing/ is the hone.codes landing page – a single index.html with no build step.
  • account.hone.codes/ is the account dashboard SPA.
  • hone-brand/ holds logos, color definitions, typography, and brand guidelines.