Releases¶
Changelog¶
0.1.0 -- Initial Public Release¶
Language & Runtime
- F#-inspired functional syntax: let bindings, lambdas, pattern matching, pipe operators
- Hindley-Milner type inference (Algorithm W) with optional annotations
- Algebraic data types: records, discriminated unions, tuples
- Result/Option types with
?propagation andtry-with/try-finally - Lazy evaluation:
lazy expr,force,seq { yield ... }sequences - Module system with
import/open, standard library, user modules - Ref cells (
ref,.value,<-) with GC write barrier - Indirect function calls, partial application, closures, mutual recursion
- Mark-and-sweep garbage collector with slab-allocated object pool
Shell
- Bash-compatible command execution: pipes, redirects, job control, globbing
- 60+ inline builtins: file ops, text processing, networking, process management
- Structured output:
ls,ps,jobsreturn typed records - Output recognition files (
.endo-output.yml) for external command output - Scoped resource management (
let use) with auto-dispose history(list, search, clear) andsourcebuiltinstail -ffollow mode for files and stdin
Interactive UX
- Multiline editor with undo/redo, clipboard (OSC 52), mouse support
- Fish-style ghost text suggestions from persistent history
- Context-aware tab completion (commands, files, variables, git, modules)
- Command palette (Ctrl+Shift+P) with fuzzy search
- Configurable prompt with 10 presets
- Kitty keyboard protocol support
IDE Integration
- Full LSP server: hover, completions, go-to-definition, find references, rename, semantic tokens, signature help, formatting, code actions, inlay hints, call hierarchy
- Source formatter (
endo format) with idempotent round-trip - Debug Adapter Protocol (DAP) scaffolding
Cross-Platform
- Linux, macOS, and Windows support
- Platform abstraction layer for processes, pipes, TTY
Installation¶
Build from Source¶
The recommended way to obtain Endo today is to build from the Git repository:
git clone https://github.com/contour-terminal/endo.git
cd endo
cmake --preset clang-release
cmake --build --preset clang-release
sudo cmake --install build/clang-release
See the Getting Started guide for detailed prerequisites and build instructions.
GitHub Repository¶
The source code, issue tracker, and development activity are hosted on GitHub:
github.com/contour-terminal/endo
Package Managers¶
Coming Soon
Package manager support is on the roadmap but not yet available.
Planned package manager support includes:
| Package Manager | Platform | Status |
|---|---|---|
| Homebrew | macOS, Linux | Planned |
| Scoop | Windows | Planned |
| AUR | Arch Linux | Planned |
| APT / PPA | Debian, Ubuntu | Planned |
| RPM / COPR | Fedora, RHEL | Planned |
| Nix | NixOS, any | Planned |
If you would like to help package Endo for your preferred distribution, contributions are welcome. See Contributing for details.
Versioning¶
Endo follows Semantic Versioning. Until the 1.0 release, the API and language syntax may change between minor versions. After 1.0, backward compatibility will be maintained within major versions.