The Engine is an agentic runtime. You hand it a message and it runs a complete agent loop on your behalf — calling the model, calling tools, asking you for input when it gets stuck, and remembering everything that happens so the next conversation is smarter than the last. You can think of the Engine as the part of an AI product that sits between “the user said something” and “the user got something useful back.” It is not a model. It is not a UI. It is the loop, the memory, the tools, and the permissions that turn a model into something that can do work.Documentation Index
Fetch the complete documentation index at: https://internal.september.wtf/llms.txt
Use this file to discover all available pages before exploring further.
When to reach for the Engine
The Engine is a fit when you want:- Long-running agents that do real tasks across many turns, not single- shot completions.
- Persistent memory — the agent should know what it learned about the user yesterday.
- Tool use that’s safe — sandboxed shell, read/write filesystem, MCP connectors to external services, with permission prompts when something dangerous shows up.
- Streaming output so the user sees thinking as it happens.
- Human-in-the-loop — the agent can pause, ask the user a question, and resume when they answer.
- A bare-metal model API. Use the model provider directly for that.
- A chat UI. Bring your own.
- A multi-tenant SaaS surface. The Engine is single-user; multi-tenancy lives upstream.
The shape of an interaction
Here’s the simplest version of how the Engine works. You send a request:The five things to understand
If you understand these five things, you can build anything on the Engine.1. Tasks
Atask_id identifies a single conversation thread. The Engine keeps state
per task — the conversation history, the tool call results, the working
memory. Every /execute call is part of a task. You pick the IDs.
2. The agent loop
When you send a message, the Engine drives a loop: it sends the conversation to the model, gets back a response (which may include tool calls), runs the tools, feeds the results back to the model, and repeats until the model says it’s done. You watch the loop through the SSE stream.3. Tools
The agent can use three kinds of tools:- Built-in — read files, write files, run bash commands, search the web. All sandboxed.
- MCP connectors — external services (Slack, Gmail, Notion, etc.) the user has connected through the Asset Directory.
- Skills — small reusable prompts and scripts you’ve defined.
4. Memory
The Engine has long-term memory by default:- Episodes — what happened.
- Knowledge — what’s true.
- Social graph — who’s who.
/memory/* endpoints. The next conversation starts with the relevant past
already loaded into context.
5. Permissions and HITL
Anything risky — running a destructive shell command, accessing a restricted path, calling an external service for the first time — pauses the agent and emits anhitl_request event. The agent waits for an answer
through POST /hitl/respond before continuing. This is how you let the
agent do real work without giving it free run of your system.
Where to go next
Quickstart
Send your first request in curl, Python, or Node.
The agent loop
What’s actually happening between request and response.
API reference
Every endpoint, every parameter.

