HyperRepo
Monorepo pattern with symlinked meta repositories for clean documentation management.
Overview
HyperRepo solves the nested-git problem in monorepos by providing clean separation between code projects and meta-layer documentation through symlinked repositories. This allows you to maintain version control for documentation, context files, and shared resources without the complexity of git submodules or subtrees.
Features
- Clean Separation: Code projects remain independent while sharing documentation
- Version Control: Full git history for both code and meta documentation
- Zero Ceremony: Simple YAML configuration with automatic symlink management
- Cross-Platform: Works on Windows, macOS, and Linux
- Template System: Pre-built templates for common patterns
Installation
pip install hyperepo
Quick Start
-
Initialize a new hyperepo:
hyperepo init myproject
-
Check symlink integrity:
hyperepo check -
View repository status:
hyperepo status -
Create configured symlinks:
hyperepo create-links
Configuration
HyperRepo uses a simple hyperepo.yml configuration file:
version: "1.0"
meta_repo: "../myproject-meta"
symlinks:
- target: "context"
source: "context"
- target: "prompts"
source: "prompts"
- target: "specs"
source: "specifications"
Directory Structure
myproject/
├── hyperepo.yml # Configuration
├── subproject-a/ # Git submodule
├── subproject-b/ # Git submodule
├── context → ../myproject-meta/context # Symlinked directories
├── prompts → ../myproject-meta/prompts
└── specs → ../myproject-meta/specifications
myproject-meta/ # Separate git repository
├── context/
├── prompts/
└── specifications/
CLI Commands
hyperepo init <name>- Initialize new hyperepo structurehyperepo check- Validate symlink integrityhyperepo status- Show repository structure statushyperepo create-links- Create all configured symlinks
Python API
from hyperepo import HyperRepo
# Initialize
repo = HyperRepo()
repo.init("../project-meta")
# Validate
issues = repo.validate_symlinks()
if not issues:
print("All symlinks valid!")
# Create symlinks
repo.create_symlinks()
Templates
HyperRepo includes built-in templates for common patterns:
- standard: Basic template with context, prompts, and specifications
- ai-dev: AI development template optimized for AI-assisted workflows
License
MIT License - see LICENSE file for details.
Contributing
Issues and pull requests welcome at https://github.com/tysonzero/hyperepo
Release files for hyperepo 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hyperepo-0.0.1.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hyperepo-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 kB
Release files / hyperepo-0.0.1.tar.gz
| Download URL | hyperepo-0.0.1.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71756491272402db46add34b3dab3847d6b65f2d3f5e9dabc1d71d35bdf3939a
|
|
BLAKE2b-256 checksum How to use checksums |
c7ccc3297c7235e7d52ea660b8b22f49255e941b8b9750f1c862a3f05e29cca4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.10 Darwin/24.5.0
|
Release files / hyperepo-0.0.1-py3-none-any.whl
| Download URL | hyperepo-0.0.1-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c9d4983506642c1e5e6afbaaa96492aa382ad2de5d63bb9574e49fcf28e2b9f
|
|
BLAKE2b-256 checksum How to use checksums |
2bd60044ed321d0bbedc5b0e32e3d0b37334cc86b92acf2e298b48504bd4d7bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.10 Darwin/24.5.0
|