No description
Find a file
2026-01-21 11:24:33 +01:00
docs add terminal escape sequences doc 2025-11-03 17:09:35 +01:00
src improv(*) refactor job infrastructure to better handle file redirects 2026-01-21 11:24:33 +01:00
.envrc add flake 2025-11-12 09:37:56 +01:00
.gitignore update flake.nix 2025-11-12 13:59:24 +01:00
Cargo.lock improv(*) remove dirs crate 2026-01-20 13:50:35 +01:00
Cargo.toml improv(*) remove dirs crate 2026-01-20 13:50:35 +01:00
flake.lock add flake 2025-11-12 09:37:56 +01:00
flake.nix rename project part 2 2025-12-30 11:43:03 +01:00
LICENSE Add LICENSE 2025-10-21 16:27:54 +02:00
README.md update readme 2026-01-20 13:52:50 +01:00
test improv(*) refactor job infrastructure to better handle file redirects 2026-01-21 11:24:33 +01:00

selo-pona

selo pona (simple shell in toki pona) is an (planned) interactive shell and (planned) interpreted scripting language that is a (planned) superset of bash. That is, every bash script is also a selo pona script (planned), but selo pona adds some nicer syntax, on top. (planned)

Built in Rust, with minimal dependencies (for now, only libc, and leftpad)

Using

For testing purposes only.

Clone the project, and run cargo run.

Features

Infrastructure

  • Analyzer
  • Lexer
  • AST
  • Interpreter

Language

  • Variables
  • Main control flow
  • Commands
  • Syntactic sugar

Shell

  • read/eval/print loop (basic implementation)
  • cli interface (basic)

Common

  • Pipes (basic)
  • File redirections
  • Command substitions
  • String, backslash-escapes (basic implementation)
  • Subshells

Design principles

fish but POSIX-compliant and retrocompatible with bash. This is made to be minimalist, useful out-of-the box, and unintrusive. You can leave your default bashrc and it'll work (planned).