Pronounced "say-see" β What you say, you'll see.
Sesi is a high-performance Systems Language designed for building resilient, stateful applications. It provides first-class primitives for process management, filesystem orchestration, and integrated reasoning, enabling developers to build complex logic with a fraction of the boilerplate required by traditional languages.
You can install Sesi in three ways:
If you have Node.js installed, download Sesi directly from the npm registry:
npm install -g sesiDon't want to install Node.js? Download the standalone executables bundled for Windows, Mac, and Linux directly from our Downloads page. Drop the executable in your system PATH and you're good to go!
For macOS users, Sesi also supports a native PKG installer flow when building from source:
npm run build:exe
npm run build:mac:pkgThis generates installer packages in releases/ (for available architectures) that install sesi to /usr/local/bin.
git clone https://github.com/Misterscan/Sesi.git
cd Sesi
npm install
npm run build
npm install -g . # Unlock the `sesi` command locallyYou'll need a Gemini API Key for the reasoning features. Create a .env file referencing your key where you run your scripts:
GEMINI_API_KEY="AIzaSy..."Then run any program directly:
# Standard script execution
sesi main/start.sesi
# Reasoning script example
sesi examples/08_model_call.sesi
# Run all examples
sesi examples.sesiIf you choose not install sesi globally, use the helper npm scripts:
npm run example 01_hello.sesi
npm run example:ai 08_model_call.sesi
npm run example:allSesi is designed for developers who want to:
- Write normal code (variables, functions, loops, etc.)
- Call Reasoning directly within code using
promptandmodelblocks - Get structured outputs from Reasoning with type guarantees
- Build Reasoning agents with memory and multi-step reasoning
- Maintain full control and transparency
// Basic computation
let x = 10
let y = 20
let result = x + y
print result // 30
// Reasoning-powered code generation
prompt generateCode {"Write a TypeScript function that reverses a string"}
let code = model("gemini-3.1-pro-preview") {generateCode}
print code
Sesi is designed to run and orchestrate untrusted AI reasoning pipelines. Because code can be influenced by prompt injections or generated model instructions, Sesi incorporates a safe-by-default, zero-trust sandboxing engine.
-
Safe-by-Default Execution:
- Sesi's sandbox is enabled by default. Any standard Sesi interpreter execution blocks system command lines (
exec,spawn) and locks down imports and paths. - Overriding Safety: Developers can explicitly bypass safe mode programmatically by initializing the interpreter with options, or on the command line by setting
SESI_SAFE_MODE=false.
- Sesi's sandbox is enabled by default. Any standard Sesi interpreter execution blocks system command lines (
-
Absolute Prototype Pollution Immunity:
- Sesi uses prototype-free objects (
Object.create(null)) for all object literals, JSON parses (from_jsonorstd/json), and structured model responses inside the interpreter. - Because these objects do not inherit from standard JavaScript prototypes and possess no
__proto__or prototype chain, prototype pollution is physically and architecturally impossible.
- Sesi uses prototype-free objects (
-
Strict Path Whitelisting:
- Sesi validates all filesystem and subprocess paths against a strict directory whitelist (by default, only the Current Working Directory and the Script's base directory are allowed).
- Any path traversal resolving outside the whitelist is instantly rejected with a
Security Violationexception.
-
Automated LLM Tool Call Sanitization:
- Even if safe mode is explicitly turned off for developer automation, Sesi strictly blocks automated tool execution of sensitive commands (like
execandspawn) when requested dynamically by the model viatool_call. This completely isolates the host from prompt-injection RCE.
- Even if safe mode is explicitly turned off for developer automation, Sesi strictly blocks automated tool execution of sensitive commands (like
-
Deep isolation & Map Cloning:
- Sub-interpreters loaded via concurrent workflows (
multi_req) are fully isolated. Sesi deep-clones prompts and memories, preventing concurrent agent tasks from leaking state or polluting each other.
- Sub-interpreters loaded via concurrent workflows (
When embedding Sesi inside a host application, you can statically configure safety settings directly in code:
const interpreter = new Interpreter(scriptDir, {
safeMode: true, // Enable full sandbox limits (on by default)
allowUnsafeFs: false, // Block directory escapes (on by default)
allowedPaths: ['/var/tmp/sandbox'] // Custom strict whitelist directories
});- Getting Started
- Examples
- Language Specification
- Language Comparison Showcase
- Built-in Functions
- Reasoning Guide
- Distributed Systems
- Runtime Architecture
The root-level SKILLS.md file is a workspace context file for AI agents. It records repo-specific constraints such as valid Sesi syntax expectations, execution conventions, and the intended meaning of directories like main/ and main/tests/.
Sesi/
βββ SKILLS.md # AI-agent workspace context and repo guardrails
βββ index.html # Sesi-generated landing page
βββ eslint.config.mjs # ESLint configuration
βββ dist/ # Compiled TypeScript output
βββ example.js # Helper script to run basic examples
βββ example-ai.js # Helper script to run Reasoning examples
βββ package.json # Dependencies & scripts
βββ tsconfig.json # TypeScript configuration
βββ QUICKSTART.md # Quick start guide
βββ IMPLEMENTATION_SUMMARY.md # Progress and tracking
βββ src/
β βββ types.ts # Type system & AST nodes
β βββ lexer.ts # Tokenization
β βββ parser.ts # AST generation
β βββ interpreter.ts # Execution engine
β βββ builtins.ts # Standard library
β βββ ai-runtime.ts # Gemini integration
β βββ index.ts # Main entry point
βββ bin/
β βββ sesi.js # CLI executable
βββ examples/ # 18 sample programs demonstrating all features
βββ main/ # Main entry and specialized tests
β βββ playground.sesi # Main playground script
β βββ start.sesi # Beginner script
β βββ build_website.sesi # Sesi-powered landing page generator
β βββ tests/ # Debug and syntax scripts
βββ tests/ # Test suite
βββ docs/ # Documentation (ARCHITECTURE, BUILTINS, SPECIFICATION, etc.)
- Variables & Bindings:
letfor all bindings (const is deprecated). - Functions: Side-effect driven functions with typed parameters.
- Control Flow:
if/else,while,for, andtry/catch. - Collections: Robust Arrays and Objects.
- Error Handling: Structured
try/catchfor both runtime and Reasoning-level errors. - Local Module Imports/Exports: Import custom local
.sesimodules cleanly using relative import/export syntax! - Standard Library Modules: Native support for imported standard libraries, including:
std/math(providingPI,E,sqrt,pow,sin,cos, etc.)std/time(providingsleepandnow)std/json(providing JSON serialization/deserialization)
promptblocks for message compositionmodel()calls with Reasoning provider configurationimage()calls with specific ratio/size generation capabilitiesstructured_output()for typed Reasoning responsestool_call()for function calling- Basic memory for multi-turn reasoning
read_file(),write_file(),to_json(),write_image(), andlist_dir()for local file I/O- Native Concurrency:
spawn()andexec()for concurrent process management, andmulti_req(array<function>)for physical parallel request execution. - Logic Caching: High-efficiency Sesi Logic Caching (
.sesi_cache.json) for local call caching. - Thinking Scale: Scaled Gemini reasoning configurations using the
thinkingparameters. - HTTP Client: Built-in, native HTTP client support using
web_get(url)andweb_send(url, body, headers)with zero external dependencies. - Async Polling: Native looping to auto-resume generation when hitting
MAX_TOKENSlimit - Utility Builtins:
time()andrandom()for robust coordination
- Static types:
number,string,bool,array<T>,object<T> - Type inference
- Union types for Reasoning response handling
- Long-term memory and context management
- Custom tool definitions
- Streaming responses
- Agent definitions with state
- Tool composition and chaining
- Multi-agent collaboration
- Persistent knowledge bases
MIT