Three AI agents, one desktop, zero cloud - A self-hosted ReAct agent with 12 tools and real memory

by
Most "AI agent" apps today fall into one of two camps: 1. **Thin chat wrappers** — they forward your message to an API and stream tokens back. No real tools, no file system access, no memory beyond the context window. 2. **CLI launchers** — they spawn `claude` or `codex` as a subprocess and forward the output. If you don't have those CLIs installed (or don't want to pay for their subscriptions), you get nothing. **KinetAios is neither.** At its core is **Direct Engine** (we call it "Kaios")

Add a comment

Replies

Best
Maker
📌
Most "AI agent" apps today fall into one of two camps: 1. **Thin chat wrappers** — they forward your message to an API and stream tokens back. No real tools, no file system access, no memory beyond the context window. 2. **CLI launchers** — they spawn `claude` or `codex` as a subprocess and forward the output. If you don't have those CLIs installed (or don't want to pay for their subscriptions), you get nothing. **KinetAios is neither.** At its core is **Direct Engine** (we call it "Kaios") — a from-scratch ReAct agent loop built in TypeScript that: - **Calls any OpenAI-compatible or Anthropic-compatible API** — GLM, DeepSeek, Qwen, Ollama, OpenAI, Mistral, any provider. One API key, no vendor lock-in. - **Has 12 built-in tools that run on your machine** — not JSON stubs, real Node.js implementations: - `shell` — execute any command (with user confirmation + sandbox modes) - `read_file` / `write_file` / `edit_file` — full file system I/O with auto-snapshot before every write - `grep` / `glob` — search files like a developer - `git_diff` — inspect uncommitted changes, per-file or per-ref - `web_search` — multi-engine fallback (Bing + DuckDuckGo) - `web_fetch` — fetch and denoise any URL (Jina Reader + native fetch) - `recall_memory` — search long-term memory (FTS5 full-text + embedding) - `dispatch_agent` — spawn a sub-agent for parallel exploration - **Manages its own context window** — reactive trim (auto-shrink on context overflow) + history compaction (LLM-summarize old turns instead of dropping them) + orphan tool-call cleanup. Long conversations don't silently break. - **Auto-extracts long-term memory** — after every turn, a background pass pulls durable facts into SQLite. Next session — even with a different model — gets them injected automatically. - **Snapshots every file write** — each `write_file` / `edit_file` snapshots the original content to `.kinet-snapshots/`. One-click rollback. The agent can't destroy your code. **Claude Code and Codex?** They're available as *optional* engines — you can switch to them per-conversation if you happen to have them installed. But they're not required. They're not the point. The point is: **KinetAios gives you a real agent that works with any model, out of the box, with zero dependencies.**