v0.1.3 Open Source rust · stable

Etwas in deinem Terminal ist gerade aufgewacht."

Ein erweiterbarer Agent-Harness in Rust.

Eine statische Binary, kein Ballast. Ein LLM-Agenten-Loop mit Streaming, parallelem Tool-Dispatch und Compaction — als TUI, One-shot oder JSONL-RPC. Sicher by default.

Installieren in einer Zeile
$ curl -fsSL https://raw.githubusercontent.com/Vezir0013/sepp-mini/main/install.sh | sh
$ sepp --version # prüfen

Oder cargo install · build from source ↗

1
statische Binary
0
node_modules
ms
Cold-Start
4
Erweiterungs-Tiers
3
Modi, ein Kern
// Highlights

Ein Kern. Streng geschichtet. Erweiterbar bis zur OS-Grenze.

Cargo-Workspace aus kleinen Crates — untere Schichten importieren nie obere.

01 / Sandbox
Sandbox-by-default
Default ist deny. Erweiterungen deklarieren Capabilities (FsRead/FsWrite/Net/Env/Exec); der Kern parst sie zu einer Policy und erzwingt sie an der Grenze — Linux via Landlock, plus Environment-Scrubbing.
02 / Tiers
Vier Erweiterungs-Tiers
Resources (Skills, Prompts), Hooks (in-process Rhai), WASM-Plugins (memory-sandboxed, via wasmi) und MCP-Server (out-of-process, OS-sandboxed) — nach Macht und Isolation gestuft.
03 / Provider
Multi-Provider, ein Trait
Anthropic (Messages API) und OpenAI-kompatibel hinter einem Trait — inklusive lokaler Endpunkte (Ollama/vLLM) über OPENAI_BASE_URL.
04 / Modi
Drei Modi, ein Kern
Interaktive TUI, One-shot (-p) für Skripte und Pipes, sowie JSONL-RPC (--rpc) zum Einbetten in andere Programme. stdout bleibt im RPC-Modus reiner Datenkanal.
05 / Sessions
Robuste Baum-Sessions
Baumstrukturiert mit Branching und Compaction, persistent als JSONL (Default) oder optional SQLite — Sessions fortsetzen, verzweigen, kompaktieren.
06 / Sub-Agenten
Native Sub-Agenten
Delegieren Teilaufgaben in isoliertem Kontext; nur das Ergebnis kehrt zurück — der Wurzel-Kontext bleibt schlank und billig.
// Erweiterbarkeit

Vier Tiers, nach Macht und Isolation gestuft.

Je mehr eine Erweiterung darf, desto stärker isoliert sie der Kern. Vom System-Prompt bis zum OS-sandboxed Subprozess.

tier 1
Resources
Skills → System-Prompt, Prompt-Templates → Slash-Commands, Themes. Reine Daten, kein Code.
~/.sepp/skills · ~/.sepp/prompts
tier 2
Hooks
In-process Rhai-Skripte, die den Agent-Loop unterbrechen und steuern können.
~/.sepp/hooks/*.rhai
tier 3
WASM
Capability-gegatete Plugins (jede Sprache → .wasm), memory-sandboxed via wasmi.
~/.sepp/plugins/*.wasm
tier 4
MCP
Out-of-process-Server als Tool-Quelle, OS-sandboxed mit deklarierten Capabilities.
settings.toml → [[mcp.servers]]
weniger Macht · mehr Isolationmehr Macht · OS-erzwungen
// Sicherheitsmodell

Default ist deny.

Eine Erweiterung bekommt nur die Rechte, die sie deklariert und der Mensch bestätigt — und der Kern erzwingt sie an der jeweiligen Grenze.

01
deny
Ohne Deklaration: keine Rechte. Kein Dateisystem, kein Netz, keine Secrets.
02
declare
Capabilities werden im Manifest deklariert und vom Menschen bestätigt.
03
enforce
Der Kern erzwingt die Policy an der OS-Grenze — fail-closed.
Erzwungen an jeder Grenze
MCP / Subprozesse
OS-Sandbox via Landlock (Dateisystem) + Environment-Scrubbing — keine geerbten API-Keys.
WASM-Plugins
Host-Funktionen nur registriert, wenn die Policy sie erlaubt. Ohne Net nachweislich offline.
Secrets
API-Keys kommen aus Env-Vars, werden nie geloggt oder persistiert; bash reicht sie nicht durch.
Tool-Output
Immer getrunkt, bevor er ins Kontextfenster geht. Kein unkontrolliertes Wachstum.
~/.sepp/settings.toml
[[mcp.servers]]
name = "git"
command = ["uvx", "mcp-server-git"]
[mcp.servers.capabilities]
fs_read  = ["./"]
fs_write = ["./"]
exec    = ["git"]
Alles, was nicht deklariert ist, wird verweigert.
// Drei Modi

Ein Kern, drei Frontends.

Dieselbe Engine — interaktiv, als One-shot-Kommando oder als JSONL-RPC zum Einbetten.

Interaktiv. Sessions fortsetzen (-c) oder gezielt wieder aufnehmen (-r).
$ sepp # interaktive TUI
$ sepp -c # jüngste Session fortsetzen
$ sepp -r <id> # bestimmte Session
$ export ANTHROPIC_API_KEY=...
$ sepp -p "Fasse README.md zusammen"
$ sepp --provider openai -m gpt-4o-mini -p "..."
$ echo '{"type":"prompt","text":"hallo"}' | sepp --rpc
OPENAI_BASE_URL=http://localhost:11434/v1 \
  sepp --provider local -m llama3 -p "..."
Umgebung
ANTHROPIC_API_KEYAnthropic-Live-Aufrufe
OPENAI_API_KEYOpenAI (optional bei lokalen Servern)
OPENAI_BASE_URLOpenAI-kompatible base_url (Ollama/vLLM/local)
SEPP_PROVIDERDefault-Provider, wenn --provider fehlt
RUST_LOGLog-Level (Logs gehen nach stderr)

Etwas in deinem Terminal wartet."

In einer Zeile installiert.

$curl -fsSL …/install.sh | sh