Skip to content

openloci/OpenLoci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenLoci

"A finite game is played for the purpose of winning. An infinite game is played for the purpose of continuing the play." — James P. Carse, Finite and Infinite Games (1986)

OpenLoci is a filesystem-native memory palace generator for finite and infinite games.

It generates structured project environments — palaces — from plain text and directory hierarchies, using the Method of Loci as both metaphor and architecture. Every room is a directory. Every artifact is a markdown file. Every character is a card an agent can pick up and speak through.


What It Is

OpenLoci is two things:

A finite game engine — for bounded projects with clear outputs. A blog migration. A job hunt. An investigation. You win when the work is done.

A scaffold for infinite games — via OpenMuse (coming), a spec for describing entire RPG worlds. Mount the world on a filesystem, point an LLM at it, and the game begins.

The chassis is Clue. Nine rooms. Six suspects. A mystery that may or may not have a solution. Skins change the cultural frame. The structure stays.


Quick Start

# Install
pip install openloci

# Generate a new palace (base template)
openloci new my-project

# Generate with a skin
openloci new my-investigation --skin xfiles
openloci new my-startup --skin sv

# List available skins
openloci skins

# Show room map for a skin
openloci rooms xfiles

# Inspect an existing palace
openloci info ./my-investigation

The Palace Structure

Every generated palace has two top-level directories:

my-palace/
├── The Vestibule/          # Global config — the threshold before the palace
│   ├── README.md           # Entry point. Read this first.
│   ├── Characters/         # One file per character/agent (prefixed: cro_, cto_, ...)
│   ├── Rooms/              # Room descriptions and atmosphere
│   └── Rules/
│       └── master_prompt.md  # DM instructions for LLM play
└── The Palace/             # Nine rooms, prefixed by function
    ├── intake_*/           # Routing, inboxes, intake
    ├── build_*/            # Active work, deep focus
    ├── ops_*/              # Infrastructure, DevOps
    ├── collab_*/           # Pair work, implementation
    ├── meet_*/             # Decisions, charters
    ├── think_*/            # Research, memory palace
    ├── priv_*/             # Private deliberation
    ├── pitch_*/            # BizDev, external relations
    └── retro_*/            # Retrospectives, personal writing

Prefix Conventions

Two parallel prefix systems make the palace self-documenting across any skin:

Room prefixes (intake_, build_, ops_, ...) — functional labels that survive skin changes. The room does what its prefix says regardless of whether it's called "The Basement Office" or "The Garage."

Character prefixes (ceo_, cro_, cto_, ...) — C-suite role labels. cro_fox_mulder.md and cro_erlich_bachman.md are both Chief Research Officers wearing different skins.


Available Skins

Skin Description
xfiles X-Files over the Clue chassis. Mulder, Scully, Skinner, CSM.
sv Silicon Valley. Pied Piper. Not a bug, a pivot.
jobhunt (coming) Job search as investigation.
office (coming) Neutral physical office — works for any org.

Community skins welcome. See CONTRIBUTING.


The Stack

Layer Technology Function
Memory Filesystem The palace itself
Protocol YAML Frontmatter Metadata, rules, routing
Templating Cookiecutter Palace generation
Presentation Hugo Rendering, journal, navigation
Chronicle Git Truth, history, version
CLI Typer + Rich Pretty interface

The Shell Game Constraint

Yetzirah (Formation / Narrative) without Assiyah (Action / Artifacts) is fantasy.

A session that leaves no files did not happen. All significant outputs must be grounded in material receipts — notes, evidence, summaries, handoffs. The palace grows through use, not intention.


Development

# Clone and install
git clone https://github.com/nullspaceink/openloci
cd openloci
uv venv && uv pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run CLI
openloci --help

Requires Python 3.11+. uv recommended.


Contributing

Skins are the primary contribution surface. A skin is a directory in templates/skins/ containing:

  • skin.json — room map, character list, metadata
  • cookiecutter.json — template variables
  • {{cookiecutter.palace_name}}/ — the generated palace template

See templates/skins/xfiles/ for a reference implementation.

Fan fiction is welcome. The spec is open. The palace is being built.


Related Projects


License

GPL-3.0. See LICENSE.


The palace is being built. ∃∞❤️

About

Framework for creating a minimal computing, finite game-based LLM memory palace

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors