A code editor written in Odin with raylib. Tree-sitter syntax highlighting, an in-client Odin language server, LSP support for every other language, a real terminal, a built-in Git UI, and a sandboxed Lua plugin system.
This repo is still in development — everything can break or change at any time.
Download a build from Releases, or build from source:
git clone --recurse-submodules https://github.com/Nov0cx/Thor
cd Thor
odin run build.odin -file -- deps # once per machine: HarfBuzz + tree-sitter
odin run build.odin -file -- run # build and startFull dependency and per-platform setup: docs/building.md.
thor # reopen the last session's folder
thor . # open the folder Thor was called from
thor src/ # open that folder
thor main.odin # open the file, with its folder as the workspace
thor a.odin b.odin # open both as tabs, with b.odin activeFile > Open Folder... / File > Open File... do the same from inside the
editor, and so does dropping a folder or files on the window. Each folder
keeps its own session (open tabs, layout). More: docs/getting-started.md.
Press ctrl + . to open the command palette — fuzzy-search and run any
action, including everything bound to a key. Full shortcut list:
docs/keybindings.md.
The docs/ folder is the full user manual:
- Getting Started
- Building from Source
- Configuration — settings, themes, per-project
.thor/files - Keybindings
- Git — changes, history, branches, config, GitHub/GitLab
- Plugins
- Troubleshooting — the log file, a slow start
For the codebase itself (architecture, package layout, contributing), see
CLAUDE.md.
