All notable changes to LocalCode will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.1.0 - 2026-03-16
- Persistent input history — last 200 entries saved to
~/.localcode/history.json; survives restarts and is navigable with arrow keys - Braille spinner animation — displayed during streaming responses and tool calls for clear visual feedback
- Theme system — four built-in themes (
dark,nord,monokai,light) switchable at any time with/theme - Template system — save and reuse prompt templates with
/template add,/template use,/template list,/template delete; stored in~/.localcode/templates.json - Alias system — define custom command shortcuts with
/alias <name> <command>; stored in~/.localcode/aliases.json /explain— stream an AI explanation of any file or the last code snippet in the conversation/test— auto-detects and runsjest,vitest,pytest,cargo test, orgo test; on failure, offers an AI-generated fix/share— exports the full conversation as a self-contained HTML file- Session history browser —
/history [n]lists and restores past sessions archived in~/.localcode/sessions/ /gitpanel — interactive git panel with status, log, stash, and branch views; raw git commands also pass through/watch— watches a file withfs.watchand re-runs the last message automatically on every change- Auto-context injection — on startup, automatically injects
git logandgit statusinto context when no.nyx.mdproject file is found - Multi-file diff summary — after the agent edits multiple files, a grouped diff summary is shown
- Collapsible tool output — long tool outputs are truncated and expandable to keep the UI clean
- Syntax highlighting — code blocks receive keyword, string, number, and comment highlighting
- Plugin system — drop any
.jsfile into~/.localcode/plugins/to register custom slash commands; manage with/plugins /image— vision input via base64 encoding, compatible with Claude, GPT-4o, and Ollamallava- Streaming token counter — live
+N▌token display in the header updates during streaming - TF-IDF semantic search —
/indexbuilds a local search index of project files;/search <query>queries it - New QoL commands —
/cd,/ls,/find,/pingadded for quick filesystem and network tasks - Dynamic version in header — version number is read directly from
package.jsonat runtime - Token progress bar — visual progress bar in the header shows context window utilization
- Message timestamps — system messages and tool call messages now display a timestamp
- Auto-save — session is automatically saved to disk after every AI response
- Input character counter — footer displays a live character count while typing
- Windows + Wayland clipboard support —
/copynow works on Windows (clip.exe) and Wayland (wl-copy) - Revamped website — tabbed command browser, feature comparison table, plugin showcase, and terminal demo
- Word wrap applied to all message text for improved readability on narrow terminals
3.0.0 - 2026-03-16
- Markdown renderer (
MarkdownTextcomponent) — renders fenced code blocks, headers (#–###), ordered and unordered lists, bold text, and inline code in the terminal - Hooks system — run shell scripts automatically on
PreToolUse,PostToolUse, andNotificationevents; configured via~/.localcode/hooks.json - Three-tier approval mode —
suggest(default),auto-edit, andfull-auto; switch at runtime with/modeor grant blanket approval with/allowall - AbortController integration — pressing
Escapecancels the current in-flight streaming request immediately - Memory hierarchy — global memory in
~/.nyx.mdplus per-project memory in<project>/.nyx.md; manage with/memory - MCP (Model Context Protocol) — connect external tool servers over
stdioor HTTP transport; manage with/mcp - Multiline input — toggle multiline editing mode with
Ctrl+E; lines are numbered, submit withCtrl+D - Unified diff —
/diffnow shows a proper unified diff computed with a pure-JS LCS algorithm - New file tools —
delete_file,move_file,search_files,find_filesadded to the agent tool set - New slash commands —
/review,/init,/doctor,/memory,/hooks,/mode,/steps,/sys,/persona,/pin,/unpin,/web,/export,/undo,/todo,/cost,/mcp - Per-model cost table — token cost estimates for Claude 4.6, GPT-4.1, and o3 shown via
/cost - Configurable max steps —
/steps <n>sets the agent loop step limit; default is 20 - Auto-checkpoint — session checkpointed automatically every 20 messages
- Polished
NyxHeader— dynamic mood-based colors and av3.0version badge
- Shell injection prevention — all
exec()calls replaced withexecFile()to eliminate shell injection vectors - Path traversal protection — tool executor now validates and rejects paths that escape the working directory
2.3.0 - 2025-01-01
- Real multi-step agent loop — the agent now executes tools across multiple reasoning steps rather than a single-shot response
- MCP server support — connect to MCP servers over
stdiotransport - Ollama provider — local model support via Ollama
- Claude SSE provider — streaming support for Anthropic Claude models
- OpenAI-compatible provider — works with any OpenAI-compatible API endpoint
- Tool set —
read_file,write_file,patch_file,list_dir,run_shell,git_operation - Session persistence — sessions are saved to disk with checkpoint and restore support
/commit— generates a conventional commit message using AI and commits staged changes/diff— shows a diff of all files modified during the current session/context— adds a file or folder to the active context window- Inline context injection —
@fileand@dirsyntax in any message injects file or directory contents inline
2.2.0 - 2024-12-01
- Custom system prompt — set a persistent system-level instruction with
/sys - Personas — five built-in personas:
pair-programmer,senior-engineer,rubber-duck,code-reviewer,minimal; switch with/persona - 13 new slash commands — including
/compact,/status,/copy,/export,/undo,/retry,/models, and more - Cost tracking —
/costdisplays estimated token cost for the current session - Token estimation — approximate token counts shown before and after messages
2.1.0 - 2024-11-01
- First-run setup wizard — interactive wizard on first launch guides the user through provider selection and API key entry
- Searchable command picker —
/opens a fuzzy-searchable list of all available commands - Multi-provider support — Ollama, Anthropic Claude, OpenAI, and Groq available from a single interface
- API key management — add, update, and remove provider API keys from within the app
- Live provider and model switching — change the active provider and model mid-session without restarting
1.0.0 - 2024-10-01
- Initial release
- Terminal UI built with Ink
- Ollama support for local model inference
- Simple conversational chat interface
- Basic file tools: read and write files