# An Agent Runtime Where Context Is Explicit State You Can Read, Change, and Put Back

> Source: <https://discuss.huggingface.co/t/an-agent-runtime-where-context-is-explicit-state-you-can-read-change-and-put-back/180520#post_1>
> Published: 2026-09-16 13:20:16+00:00

**TL;DR:** A Rust agent runtime where the context, tools, permissions, and requests are *explicit state* — not decisions made inside a framework and reported afterwards. You get a `/context` view showing every item (what it is, its token cost, whether it’s going to the model, and *why not*), a state machine you can step through one transition at a time (`/step`), and an append-only event log. The agent is  not the boss. You are.

Why It’s Different

| most runtimes | nachalnik | 
|---|---|
| Context = list of strings | Context = data structure (id, kind, source, label, content, size, state, note, metadata) | 
| “Agent decided this is relevant” | You see every item, its cost, and the *reason* it’s excluded/elided | 
| Turn = content + tool calls (flattened) | Turn preserves production order: reasoning → text → call → reasoning → call… | 
| Approve command? | `/step` stops at`Ready` — calls decided,**none run** . Read, prune, drop, or continue. | 
| Session = chat history | Session = snapshot (items, states, pins, notes, call IDs) + append-only event log | 
| Budget = estimate | Budget = `Calibrating` counter that learns from what providers*actually charge* | 
| Tools = fixed at startup | Registry is live: `/tools drop shell` stops offering it next request | 
| Model manages context? | `--introspect` hands the model`amend` (elide/exclude/revise/note/undo) — same API the UI calls | 

Five transcripts at **[https://ljedrz.github.io/nachalnik/](https://ljedrz.github.io/nachalnik/)**:
