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

Plugin Development Overview

Hone supports two paths for extending the editor, each suited to different use cases.

V1 Built-in Extensions

Located in hone-extensions/. These ship with the IDE binary.

  • Primarily for language support: LSP servers, syntax definitions, snippets
  • Defined by a hone-extension.json manifest
  • Loaded by ExtensionRegistry in hone-core
  • 11 built-in extensions ship today (TypeScript, Python, Rust, Go, C++, HTML/CSS, JSON, Markdown, Docker, TOML/YAML, Git)

Best for: core language features that every user needs out of the box.

V2 Independent Plugins

Located in hone-extension/ (the SDK package). These are standalone native plugins distributed through the Hone marketplace.

  • Compiled to native binaries via Perry
  • Use @hone/sdk (HonePlugin base class)
  • Distributed and installed through the Hone marketplace
  • Three execution tiers based on declared capabilities (InProcess, PluginHost, IsolatedProcess)
  • Full access to editor, filesystem, UI, network, and process APIs depending on tier

Best for: third-party tools, custom UI panels, external integrations, anything beyond built-in language support.

Which Path to Choose

CriteriaV1 Built-inV2 Plugin
Ships with IDEYesNo (marketplace)
Language support (LSP, syntax)Primary use casePossible but not typical
Custom UI panelsNoYes
Network accessNoYes (Tier 3)
Process spawningNoYes (Tier 3)
Marketplace distributionNoYes
Requires Perry compilationNo (data-driven)Yes

Choose V1 if you are adding a language to the IDE itself. Choose V2 if you are building a standalone tool, integration, or any plugin for the marketplace.