A modern terminal editor with plugin support.
nano simplicity. VS Code power. Zero bloat.
Linux / macOS
curl -fsSL https://janoeditor.dev/install.sh | bashHomebrew
brew tap jano-editor/jano && brew install janoWindows (PowerShell)
irm https://janoeditor.dev/install.ps1 | iexnpm
npm install -g @jano-editor/editor- Familiar shortcuts - Ctrl+S, Ctrl+Z, Ctrl+C/V, Ctrl+A - no learning curve
- Syntax highlighting - via plugins for JavaScript/TypeScript, Python, TOML, YAML, JSON, Markdown, Shell, Dockerfile and more
- Auto-formatting - press F3 to format the entire document
- Autocomplete - plugin-driven completions plus buffer words, works with multi-cursor
- Inline validation - errors and warnings shown directly in the editor (F4 for details)
- Multi-cursor editing - Ctrl+Shift+Up/Down to stack cursors, Ctrl+D for next occurrence
- Mouse support - click, double/triple-click to select, drag, scroll, auto-scroll at edges
- Search & Replace - Ctrl+F with live results
- Respects your files - keeps LF or CRLF line endings and a UTF-8 BOM (mixed line endings are normalized). Tabs, emoji and CJK are drawn at their real width
- Crash recovery - unsaved changes are backed up in the background (
~/.local/state/jano/backups/). After a crash or a killed terminal, a banner offers to restore them (Ctrl+R) - .editorconfig - indentation, line endings, BOM, trailing whitespace and final newline follow the project's
.editorconfig(F9 shows which values come from it) - Settings dialog - F9 for tab size, line numbers, autocomplete and the startup animation
- Structured debug logs -
--debugwrites JSON events to~/.cache/jano/logs/for easy bug diagnosis - Plugin system - install plugins from the Plugin Store. On first start a welcome dialog offers the recommended plugins and installs them without a restart (turn it off in F9)
- 60,000+ lines - no lag, starts instantly. One standalone binary, or about 85 KB of gzipped JavaScript
- Cross-platform - Linux, macOS, Windows, WSL
# open a file
jano config.yaml
# new file
jano
# manage plugins
jano plugin install yaml
jano plugin list
jano plugin remove yaml
jano plugin search
# update jano
jano update| Shortcut | Action |
|---|---|
| Ctrl+S | Save |
| Ctrl+Q | Exit |
| Ctrl+Z / Ctrl+Y | Undo / Redo |
| Ctrl+X / Ctrl+C / Ctrl+V | Cut / Copy / Paste |
| Ctrl+A | Select All |
| Ctrl+F | Search & Replace |
| Ctrl+G | Go to Line |
| Ctrl+R | Recover Unsaved Files |
| Ctrl+D | Select Next Occurrence |
| Ctrl+Shift+Up/Down | Add Cursor Above / Below |
| Ctrl+Space | Trigger Autocomplete |
| Alt+Up/Down | Move Line |
| F1 | Help |
| F2 | History Browser |
| F3 | Format (plugin) |
| F4 | Diagnostics |
| F9 | Settings |
Plugins add syntax highlighting, formatting, validation and more for any file format.
jano plugin install javascript
jano plugin install python
jano plugin install toml
jano plugin install yaml
jano plugin install json
jano plugin install markdown
jano plugin install shell
jano plugin install dockerfileBrowse all available plugins at janoeditor.dev/plugins.
A plugin is a single TypeScript file. Since plugin API v2, hooks like onFormat, onValidate and onComplete may return a Promise, so slow work never blocks typing. See the plugin guide or check out plugin-python as a reference.
This is a monorepo with the following packages:
| Package | Description |
|---|---|
@jano-editor/editor |
The editor |
@jano-editor/ui |
Terminal drawing library |
@jano-editor/plugin-types |
Plugin interface types |
jano is built entirely in JavaScript/TypeScript. No native addons, the standalone binary is the same code bundled with the Bun runtime. If you can read JS, you can understand and extend jano.
