{"repo":"gintasz/unigent","free":true,"listed":false,"github":"https://github.com/gintasz/unigent","clone":"git clone https://github.com/gintasz/unigent.git","description":"Build stateful agent workflows with typed outputs, reusable tools, session forks, and ordinary TypeScript.","language":"TypeScript","stars":105,"topics":["agent","ai-agent","claude-code","context-engineering","context-window","dynamic-workflows","harness","loop-engineering","opencode","pi"],"license":"MIT","category":"ai-agents","readme_excerpt":"Unigent The cross-harness agent SDK for TypeScript. Build stateful agent workflows with typed outputs, reusable tools, session forks, and ordinary TypeScript. Examples --- Why Unigent? The agent CLIs you already have installed — Pi, Claude Code, Codex — are powerful, but each has its own API, its own session model, and no way to get a typed value back. Unigent puts one TypeScript surface over all of them. - 🔀 One API, every harness. Write your workflow once against Pi, Claude Code, or Codex CLI. Swap the backend with a one-line change; the agent, tools, sessions, and structured outputs stay the same. - 🧠 Deterministic host, fuzzy agent. Orchestration — control flow, branching, parallelism, recursion — lives in your TypeScript, where it is testable and reviewable. The model is invoked only for genuinely fuzzy work: judgment and language. - 📦 Typed structured outputs, never scraped from prose. Ask a run for a Zod (or any Standard Schema) value and get back the inferred TypeScript type through a reserved completion tool. Markdown preambles and trailing commentary cannot corrupt the value. - 🧩 Agents are ordinary functions. A tool is a named function; a nested agent is a function that calls .run() . Composition, error handling, and testing are plain async / await and try / catch — no new runtime to learn. - 🌳 Built for real workflows. Sessions keep conversation context, forks branch it in parallel, scopes group runs with budgets and deadlines, and checkpoints reuse finished ","default_branch":null,"files":null,"tree":[],"storefront":"/r/gintasz","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gintasz/unigent/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}