Prism
Refract complexity into clarity
Configuration inheritance system for managing multi-level development environments
What is Prism?
Prism is a configuration inheritance system that manages complex, multi-level development environments through composable YAML configurations. Like a prism refracts white light into distinct colors, Prism takes organizational complexity and refracts it into clear, manageable configuration layers.
The Problem
Large organizations face configuration chaos:
- Complex hierarchies — Fortune 500 companies with 5+ organizational levels
- Conflicting requirements — Different teams need different tools, configs, and access
- Configuration drift — No single source of truth across thousands of employees
- Onboarding friction — New hires waste days configuring their environment
The Solution
- Centralized tool registry — Tools defined once in
tool-registry.yamlwith per-platform install/uninstall commands; child configs reference tools by name only - Configuration inheritance — Define once at company level, override per team
- Multi-level hierarchies — Support structures from flat (startups) to 5+ levels (enterprise)
- Web UI — Tool selection with categories, inline validation, hover tooltips, platform-aware filtering, and real-time progress
- CLI tools —
prism install,prism rollback,prism history— scriptable and CI/CD friendly - NPM distribution — Packages published to npm, no custom infrastructure needed
- Validation — Config engine validates tool registry (install + uninstall), tool references, and email patterns from YAML
- Smart merging — Deep-merge with configurable strategies (union, override, append)
- Installation rollback —
.prism_rollback.jsonmanifest persisted on install;prism rollback <workspace>reverses all actions - Privilege separation — Two-phase install with sudo session management
- No generic fallbacks — Tools without explicit platform install commands are skipped; no guessing
Quick Start
git clone https://github.com/andersonwilliam85/prism.git
cd prism
make install-dev
make run
# Opens at http://localhost:5555
Built-in Prisms
| Prism | Use Case | Hierarchy | Scale |
|---|---|---|---|
prism |
Default (ships as core) | Flat | Any |
startup |
Seed/Series A startups | 1 level | 10–50 |
acme-corp |
Template for companies | 2 levels | 100–1K |
consulting-firm |
Multi-client work | By client | Variable |
fortune500 |
Enterprise | 5 levels | 50K+ |
university |
Academic institutions | Dept to Lab | Variable |
opensource |
Community projects | Flat | Community |
cli-test-prism |
CLI testing fixture | Flat | Testing |
Each prism includes custom themes, cascading user fields, a centralized tool registry, and rollback configuration.
Architecture
Prism follows a VBD-inspired (Volatility-Based Decomposition) layered architecture:
- Managers — Orchestration — the “what”
- Engines — Business logic — the “how” (includes
config_engine,installation_engine,rollback_engine) - Accessors — External boundaries — the “where”
- Utilities — Cross-cutting services
- Models — Plain dataclasses
All wiring via dependency injection in container.py. See Architecture.
Key Features
- Tool Registry — Centralized tool definitions with categories
- Themes & Customization — 5 built-in + custom themes
- Cascading Dropdowns — Dynamic field dependencies
- Rollback System —
.prism_rollback.jsonmanifest + CLI/UI rollback - Privilege Separation — Sudo session management
- Config Inheritance — Multi-level merge strategies
- Local Docs Server — Post-install workspace browser
Supported Platforms
- macOS (Intel and Apple Silicon)
- Windows 10/11
- Linux (Ubuntu 20.04+, Debian, Fedora, RHEL)
- WSL2
License
MIT License — Copyright (c) 2025 William Anderson
Prism — Refract complexity into clarity
Made by William Anderson