coded

command module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2026 License: MIT Imports: 12 Imported by: 0

README

Coded

A full code editor. Right in your browser.

Edit anywhere, even on a phone with Termux. Fast, offline, and dependency-free.

Install · Quick start · Features · Shortcuts · Architecture

Go 1.23 No runtime dependencies MIT License

Coded editor running on mobile

Install

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/HashShin/coded/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/HashShin/coded/main/install.ps1 | iex

Termux (Android)

pkg install tur-repo
pkg install coded

tur-repo is required first — it adds the Termux User Repository where coded is published.

Go

go install github.com/HashShin/coded@latest

Quick start

Go to the project you want to edit, then start Coded:

cd ~/myproject
coded

You can also open another directory or choose a specific port:

coded --dir ~/myapp
coded --port 8080

The browser opens automatically. The entire UI, including fonts, is embedded in the installed executable.

Features

Editing

  • Syntax highlighting for 25+ languages (Go, JS/TS, Python, Rust, C/C++, HTML, CSS, ...)
  • Autocomplete — context-aware, per language:
    • HTML: tag/attribute completion, Emmet-style expansion (di<div></div>), ! → HTML5 boilerplate
    • CSS: property and value completion inside blocks
    • Go: stdlib completion after pkg. (e.g. fmt.PrPrintln())
    • All languages: keywords + identifiers from your open files (strings/comments excluded)
    • Snippets: fori, iferr, tryc, ... expand to full constructs
  • Custom undo/redo, auto-indent, bracket auto-close and matching, code folding
  • Find & replace (per file and folder-wide), Quick Open (Ctrl+P), Go to Line (Ctrl+G)

File management

  • File tree with create, rename, delete, cut / copy / paste (context menu or Ctrl+C/X/V)
  • Multi-select mode for bulk copy / move / delete
  • Detects external file changes and warns before overwriting

Preview

  • Run button for HTML files — serves your project at /preview/ like a real web host, so relative CSS/JS/image imports just work
  • Image files open as previews directly in the editor

Customization (Settings)

  • 8 themes: Monokai, Dracula, One Dark Pro, Catppuccin (4 flavors), Pastel on Dark
  • 6 bundled coding fonts: Fira Code (default), JetBrains Mono, Cascadia Code, Geist Mono, Source Code Pro, IBM Plex Mono — all served offline
  • Adjustable font size and line height, hidden-file toggle

Keyboard shortcuts

Shortcut Action
Ctrl+S Save
Ctrl+P Quick Open
Ctrl+G Go to line
Ctrl+F / Ctrl+H Find / Replace
Ctrl+Shift+F Find in folder
Ctrl+Z / Ctrl+Shift+Z Undo / Redo
Ctrl+C/X/V (tree row selected) Copy / Cut / Paste file
Tab / Enter (popup open) Accept completion
Alt+Z Toggle word wrap
Ctrl+Shift+[ / ] Fold / unfold

Architecture

main.go            CLI flags, listener setup
embed.go           //go:embed static  → whole UI ships inside the binary
server/            HTTP API (net/http, no frameworks)
  /api/tree        directory listing        /api/file      read/write (text)
  /api/raw         raw bytes + MIME         /api/search    folder search
  /api/create      new file/folder          /api/rename    rename/move
  /api/copy        recursive copy           /api/delete    delete
  /preview/*       static server rooted at your project dir
static/            frontend (vanilla JS, no build step)
  js/editor.js         contenteditable editor core
  js/autocomplete.js   context-aware suggestion engine
  js/acdata.js         Go stdlib + Python builtin data (generated locally)
  js/tokenize.js       Prism adapter for highlighting
  • No frontend build step — plain ES6 scripts, edit and reload
  • Path safety — every API call resolves through a root-jail (resolveWithinRoot); .. escapes are rejected
  • Limits — files over 10 MB are refused; binary files open as previews, not text

Tests

go test ./server/               # Go API tests
node static/js/editor_test.js   # editor logic tests

Why

Editing code on a phone usually means a laggy Electron port or a app with ads. Coded is a single static binary you run next to your code: drawer sidebar, touch-sized targets, selection-safe modals, and everything works offline.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL