Skip to main content
Hillock’s interactive CLI is a persistent terminal console that gives you direct access to the knowledge graph, the TALON ingestion pipeline, and all runtime controls. Launch it with hillock after installing from PyPI, or with python main.py from the project root. Every control command is prefixed with /; anything else is treated as a natural-language query and routed through the full neuro-symbolic reasoning pipeline.

Launching the CLI

On startup, Hillock prints a hardware and memory dashboard before dropping into the interactive prompt (see Startup Dashboard below).

Startup Dashboard

Every time the CLI starts — and whenever you run /status or /help — Hillock prints a full system snapshot. It covers two sections: Hardware Profile
  • OS environment and Python version
  • CPU logical core count
  • GPU name (via nvidia-smi) or "Non-NVIDIA GPU / CPU Execution Mode" if no NVIDIA GPU is detected
  • System RAM: used / total / percent (requires psutil; shows "Active" if not installed)
Persistent Memory Graph Status
  • Path to the SQLite database file and whether it is active or initializing
  • Number of unique entity nodes registered in the knowledge graph
  • Number of stored SPO (subject–predicate–object) fact triples
  • Number of active Hebbian synaptic connections
  • Currently active Ollama model
  • Current personality mode (STRICT, BALANCED, or CONVERSATIONAL)
  • Current debug verbosity level (OFF, LOW, or FULL)

Command Reference

/ingest <file_path>

Ingest a document into persistent memory. Accepts .txt and .pdf files. Hillock reads the raw text, routes it through the TALON extraction pipeline (coreference resolution → predicate normalization → relation extraction), commits all extracted SPO triples to the SQLite knowledge graph, updates Hebbian synaptic weights for every co-occurring entity pair, and binds multi-hop relational paths into the HDC reservoir state. After ingestion completes, Hillock automatically scans the freshly stored facts for unresolved pronouns and — if any are found — launches the Active Disambiguation Quiz.
The command returns a full ingestion summary report:
PDF extraction requires pypdf. Install it with pip install pypdf if you haven’t already. Plain .txt files work with zero additional dependencies.

/model <model_name>

Switch the active Ollama model used for all LLM rendering calls. Running /model with no argument lists every locally available Ollama model and marks the currently active one. Pass a model name to switch immediately — no restart required.
The default model is llama3.2. Any model served by your local Ollama instance works — run /model with no argument to see what’s available on your machine.

/mode <mode>

Set the personality and answering style for all subsequent responses.
Mode names are case-insensitive. STRICT, Strict, and strict all work. The valid values are strict, balanced, and conversational.

/inspect <entity>

Display all stored facts and synaptic associations for a specific entity. Hillock resolves the entity name against the knowledge graph (stripping possessives, normalizing underscores, falling back to substring matching), then prints every SPO triple where that entity appears as subject or object, followed by every Hebbian synaptic connection and its current connection strength.
Example output:

/status

Print a live hardware and memory dashboard. Identical output to the Startup Dashboard. Use this to check entity counts, relation counts, active synapse counts, and current model without restarting the session.

/debug <level>

Set the background trace verbosity for all reasoning operations. Running /debug with no argument prints the current level and all available options. Pass off, low, or full to change it.
Example low-level trace output during a query:
Use full when you’re debugging unexpected gate blocks or low-confidence retrievals — it shows the exact HDC cosine similarity scores that determine whether a fact passes the retrieval gate.

/reset

Clear the entire knowledge graph and reinitialize all subsystems. This command calls kg.clear_and_reinitialize() to wipe all entity nodes, SPO fact triples, and relations from the database, then zeroes the HDC reservoir state and clears the codebook and vocabulary book. It then re-seeds the graph with Hillock’s built-in initial knowledge and re-allocates HDC hypervectors for every resulting entity.
This operation is irreversible. All knowledge extracted from ingested documents — every fact, every entity, and every HDC hypervector — is permanently deleted. There is no undo. Export any facts you need before running /reset.

/help

Print the full command reference dashboard, identical to the startup output.

exit / quit

Safely terminate the CLI session. Hillock shuts down cleanly.
Both exit and quit work with or without a leading / — /exit and /quit are also accepted.

Active Disambiguation Quiz

After /ingest completes, Hillock scans the newly stored facts for unresolved pronoun references — subjects or objects that are bare pronouns (he, she, it, they, his, her, who, which, this, that, whom). If any are found, the quiz begins automatically. For each ambiguous fact, Hillock prints the full SPO triple and its source document, then prompts you to name the referent:
Type the correct entity name and press Enter to commit the resolution. Hillock deletes the ambiguous fact, upserts the resolved entity into the graph with confidence = 1.0 (flagged as human_disambiguation), and allocates a new HDC hypervector for the resolved entity. Press Enter without typing anything to skip the current fact and leave it unresolved.
Disambiguating pronouns significantly improves retrieval quality for documents with heavy pronoun use (biographies, narratives, and academic papers that use “he”, “she”, or “they” without restating names). Human-confirmed facts are stored with the highest possible confidence score and are never overwritten by re-ingestion.