Repository navigation
Embedding in Go
MCP is for hosts you don't control. If you're writing the agent yourself, import the engine directly. You get the same vault and the same files, with no subprocess and no protocol.
go get github.com/Coder8124/logos@latestReleases before the rename were published as github.com/Coder8124/brain. Asking
for that path at a newer version fails with a module path mismatch.
b, err := logos.Open("/path/to/vault", logos.WithAgent("my-agent"))
if err != nil {
log.Fatal(err)
}
defer b.Close()
// Starting a task: what did the last agent leave behind?
c, _ := b.Resume("kestrel-one")
fmt.Println(c.Render()) // drop straight into a system prompt
// About to propose something: has it already been ruled out?
approach := "re-quoting the waveguide to bring the BOM down"
if ruled, _ := b.Tried(approach, "kestrel-one"); len(ruled) > 0 {
fmt.Println(logos.Explain(approach, ruled))
}
// Finishing: record where you stopped.
b.Note("kestrel-one", "re-quoted the waveguide; no movement under 10k units")
b.Checkpoint(logos.Checkpoint{
Project: "kestrel-one",
Failed: []string{"re-quoting the waveguide — no movement under 10k units"},
Next: "quote the display driver alternatives",
})Context, Remember / Recall / Forget, Search, Ask, History,
Projects, Index, and ServeMCP if you'd rather serve the tools than call
them.
-
logos.WithoutEmbedding()skips model discovery entirely, which is what you want in CI. -
examples/handoffruns the whole thing end to end: one agent works and stops, another opens the same vault and continues.
Everything else stays under internal/ on purpose, so retrieval, budgeting and
consolidation can change without breaking you. The exported domain types are
aliases for the internal ones, so they are part of the contract.
Logos is Apache 2.0 · Repository · Report a bug · logos doctor --report prints a bundle you can paste into one
Getting started
Using it
Reference
Help