> ## Documentation Index
> Fetch the complete documentation index at: https://hillock.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Hillock CLI: Complete Interactive Command Reference

> Reference for all 9 slash commands in Hillock's terminal: ingest documents, inspect entities, switch models, and adjust debug verbosity.

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

```bash theme={null}
# From pip install
hillock

# From source
python main.py
```

On startup, Hillock prints a hardware and memory dashboard before dropping into the interactive prompt (see [Startup Dashboard](#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](#active-disambiguation-quiz).

```
/ingest ./research_papers/curie_biography.pdf
```

The command returns a full ingestion summary report:

```
========================================================
        TALON ENGINE BULK INGESTION SUMMARY REPORT
========================================================
  * File Processed             : curie_biography.pdf
  * Total Sentences            : 312
  * Extracted 1-Hop Triples    : 87
  * Multi-Hop Paths Bound      : 204
  * Model Load & Cold-Start    : 4.21 seconds
  * Pure Extraction Duration   : 18.63 seconds
  * Pure Extraction Rate       : 16.7 sentences/sec | CPU: 34.2%, RAM: 61.8%
  * Total Processing Time      : 22.84 seconds
========================================================
```

<Note>
  PDF extraction requires `pypdf`. Install it with `pip install pypdf` if you haven't already. Plain `.txt` files work with zero additional dependencies.
</Note>

***

### `/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.

```
/model mistral
```

```
/model llama3.2:latest
```

<Tip>
  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.
</Tip>

***

### `/mode <mode>`

Set the personality and answering style for all subsequent responses.

| Mode | Behavior |
| - | - |
| `strict` | Outputs only verified knowledge graph facts — no inference, no added context. Fast and deterministic. No LLM call is made when no facts match. |
| `balanced` | Combines verified facts with one sentence of natural context. Always cites the source document. |
| `conversational` | Wraps facts in warm, engaging dialogue. Weaves in Hebbian memory associations and invites follow-up questions. |

```
/mode strict
```

```
/mode balanced
```

```
/mode conversational
```

<Note>
  Mode names are case-insensitive. `STRICT`, `Strict`, and `strict` all work. The valid values are `strict`, `balanced`, and `conversational`.
</Note>

***

### `/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.

```
/inspect Marie_Curie
```

```
/inspect radioactivity
```

Example output:

```
=================================================================
 [INSPECTING ENTITY]: Marie_Curie
=================================================================
  Stored SPO Facts in Knowledge Graph:
   * [Marie_Curie] -[discovered]-> [Radioactivity]
   * [Marie_Curie] -[born_in]-> [Warsaw]
   * [Marie_Curie] -[collaborated_with]-> [Pierre_Curie]

  Hebbian Synaptic Associations:
   * Associated Concept: 'Pierre_Curie  '  Strength: 0.8731
   * Associated Concept: 'Radioactivity '  Strength: 0.7612
   * Associated Concept: 'Nobel_Prize   '  Strength: 0.6204
=================================================================
```

***

### `/status`

Print a live hardware and memory dashboard.

Identical output to the [Startup Dashboard](#startup-dashboard). Use this to check entity counts, relation counts, active synapse counts, and current model without restarting the session.

```
/status
```

***

### `/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.

| Level | Output |
| - | - |
| `off` | Clean chat output only. No diagnostic traces. |
| `low` | Shows the top Hebbian memory priming activations (node name + synaptic strength). |
| `full` | Shows all `low` traces plus HDC HYDRA MaxSim scores, predicate alignment values, and coreference resolution decisions. |

```
/debug low
```

```
/debug full
```

```
/debug off
```

Example `low`-level trace output during a query:

```
  [Memory Priming Node Activations]:
    * Associated Concept: 'Pierre_Curie '  Synaptic Connection Strength: 0.8731
    * Associated Concept: 'Radioactivity'  Synaptic Connection Strength: 0.7612

  [HDC Conversational Fingerprint Traces]:
    * Active Semantic Echo: 'Marie_Curie  '  Vector Cosine Similarity: 0.8204
```

<Tip>
  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.
</Tip>

***

### `/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.

```
/reset
```

<Warning>
  **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`.
</Warning>

***

### `/help`

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

```
/help
```

***

### `exit` / `quit`

Safely terminate the CLI session. Hillock shuts down cleanly.

```
exit
```

```
quit
```

<Note>
  Both `exit` and `quit` work with or without a leading `/` — `/exit` and `/quit` are also accepted.
</Note>

***

## 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:

```
Hillock [ACTIVE LEARNING]: I found 3 ambiguous facts during ingestion.
  Fact: [she] -[discovered]-> [Radioactivity] (Source: curie_biography.pdf)
  Who or what does the ambiguous pronoun refer to? (Type name, or press Enter to skip):
```

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.

```
  -> Successfully updated to: [Marie_Curie] -[discovered]-> [Radioactivity]
```

<Note>
  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.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.