Treat the LLM context window like a filesystem. Concepts (constraints, goals, preferences, observations, references) are files you push into context and pull back out.
The context is just JSON — llcat conversation files. Gab n' Go is the curated store; push injects concepts as system messages into those files, pull scans them and imports what it finds. No FUSE, no magic — just cp-style sync on JSON.
Each concept is a JSON object with these fields:
| Field | Limits |
|---|---|
type |
constraint, goal, preference, observation, reference |
description |
Under 50 tokens |
short |
Under 250 characters |
medium |
Under 1000 characters |
long |
Under 2500 characters |
Example:
{
"type": "constraint",
"description": "programming languages",
"short": "The programming language that we use is C",
"medium": "We use C17 standard and gcc-13 with a compile target of AMD64. Our build system is cmake"
}| File | Purpose |
|---|---|
index.html |
Web interface — drag-and-drop concept management |
server.py |
HTTP server serving the UI + API to concepts.json |
concept.py |
CLI for listing and filtering concepts (Typer) |
concept_mcp.py |
MCP server exposing concepts as a tool |
config.py |
Shared llama.cpp model configuration |
concepts.json |
Sample concept data |
schema |
Concept field constraints |
instruct.txt |
Prompt to get an LLM to output concept JSON |
tester.html |
HTML drag-and-drop prototype for the concept window |
pyproject.toml |
Project metadata and build configuration |
requirements.txt |
Python dependencies |
pip install -r requirements.txt- typer – CLI framework
- mcp – Model Context Protocol SDK
- rich – terminal formatting
- chromadb – vector database for concept storage
# List all concepts
python concept.py main concepts.json
# Filter by type
python concept.py main concepts.json --type constraint
# Print as an LLM prompt (inject into context window)
python concept.py main concepts.json --type preference --format llm
# Push concepts into an llcat conversation JSON (as system message)
python concept.py push conversation.json
# Push with a specific detail level
python concept.py push conversation.json --scope medium
# Pull concepts from an llcat conversation JSON into the store
python concept.py pull conversation.jsonpython server.pyOpen http://localhost:8080 in a browser. The web UI lets you:
- Paste concept JSON or load from file
- Browse concepts with type filters
- Drag-and-drop to reorder
- Delete individual concepts
- Export the full concept list back as JSON
python concept_mcp.pyRuns over stdin/stdout. Clients call get_concept with optional type and description to pull concepts into context.
Use instruct.txt to prompt an LLM to summarize conversation topics as concept JSON. Paste the output into the web interface or save it to concepts.json.
- Concept CRUD CLI + MCP tool
- ChromaDB vector storage
- Basic web interface for browsing and drag-and-drop concept management
- Push/pull sync —
pushconcepts into llcat conversation JSON,pullthem back - Web interface push/pull — push/pull from the browser
See config.py for model path, context size, GPU layers, and generation params. Default: models/qwen2.5-3b-instruct-q2_k.gguf.