cortexa — Elixir
Git-inspired context management for LLM agents — COMMIT, BRANCH, MERGE, and CONTEXT operations over a persistent versioned memory workspace.
Based on the paper "Git Context Controller: Manage the Context of LLM-based Agents like Git" (arXiv:2508.00031).
Install
Add to your mix.exs:
def deps do
[
{:cortexa, "~> 0.1.1"}
]
end
Quick Start
alias Cortexa.{Workspace, Models}
# Create workspace
ws = Workspace.new("/tmp/my-project")
ws = Workspace.init(ws, "Build an AI agent")
# Log observations
{ws, _ota} = Workspace.log_ota(ws, "User asked about weather", "Need to call API", "Called weather API")
# Commit milestone
{ws, _commit} = Workspace.commit(ws, "Implemented weather lookup")
# Branch for exploration
ws = Workspace.branch(ws, "alt-approach", "Try different API")
{ws, _ota} = Workspace.log_ota(ws, "Testing new API", "Seems faster", "Switched to new API")
{ws, _commit} = Workspace.commit(ws, "New API integration")
# Merge back
{ws, _merge} = Workspace.merge(ws, "alt-approach", nil, "main")
# Retrieve context
ctx = Workspace.context(ws, "main", 3)
IO.puts(Models.context_summary(ctx))
API
Cortexa.Workspace
| Function | Description |
|---|---|
new(root) |
Create workspace handle |
init(ws, roadmap \\ "") |
Initialize .GCC/ directory |
load(ws) |
Attach to existing workspace |
log_ota(ws, obs, thought, action) |
Append OTA record |
commit(ws, contribution, prev \\ nil, roadmap \\ nil) |
Create milestone commit |
branch(ws, name, purpose) |
Create isolated branch |
merge(ws, branch, summary \\ nil, target \\ "main") |
Merge branch into target |
context(ws, branch \\ nil, k \\ 1) |
Retrieve hierarchical context |
switch_branch(ws, name) |
Switch active branch |
list_branches(ws) |
List all branches |
Functional Style
The Elixir implementation uses a functional approach — workspace state is an immutable struct returned from each operation:
ws = Workspace.new("/tmp/project") |> Workspace.init()
{ws, _} = Workspace.log_ota(ws, "obs", "thought", "action")
{ws, _} = Workspace.commit(ws, "milestone")
License
MIT