The first public release of version 0.1.0 of a cross-platform interactive command shell and functional language interpreter in the style of F# has occurred. Endo.
The project was created by the author and main developer of the terminal emulator. Contour in C++ (C++23 standard) and is distributed under the Apache 2.0 license.
In this release:
- Language
- bindings, which are immutable by default when using let and mutable when using let mut;
- type inference (Hindley-Milner) — types are checked but rarely need to be specified explicitly;
- pattern matching with conditions, destructuring, and "or" patterns;
- discriminated unions, records, and built-in Option/Result types;
- currying functions, partial application, and function composition (>>,. <<);
- lambda expressions with placeholder syntax (_ + 1, _.field);
- list constructions with ranges and filters;
- "lazy" computations and sequences;
- tail recursion optimization;
- modules and imports.
- Development tools
- Language Server Protocol — a full-featured LSP server ($ endo —lsp) with diagnostics, autocompletion, hover hints, go-to definition, link searching, renaming, formatting, semantic tokens, code actions, built-in hints, Code Lens, and much more;
- Debug Adapter Protocol — a full-featured DAP server ($ endo —dap) supporting breakpoints, step execution, variable inspection, expression evaluation, and disassembly;
- VS Code extension — syntax highlighting, LSP/DAP integration, code snippets, and debugging without additional setup.
- Shell
- Command execution compatible with Bash: redirection, patterns, &&/||, task management;
- structured built-in commands — ls, ps, jobs, git log, git status, docker ps — return typed records with data;
- double pipelines: |>: for function composition, | for processes;
- variable/command/process substitution, brace expansion, and tilde expansion;
- more than 110 built-in commands and functions of the language;
- execution of .endo scripts with module resolution.
- AI Agent Mode
- built-in AI assistance, activated by the symbol # in an empty input field;
- supported online providers: Claude, OpenAI, OpenAI-compatible (Ollama, vLLM, LM Studio) and Gemini;
- support for local models in the GGUF format of the project llama.cpp;
- 18 built-in tools for working with files, git, executing commands, and accessing web resources;
- streaming responses in Markdown format.
Source: linux.org.ru
