# 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
```bash
pip install hyperepo
```
## Quick Start
1. **Initialize a new hyperepo:**
```bash
hyperepo init myproject
```
2. **Check symlink integrity:**
```bash
hyperepo check
```
3. **View repository status:**
```bash
hyperepo status
```
4. **Create configured symlinks:**
```bash
hyperepo create-links
```
## Configuration
HyperRepo uses a simple `hyperepo.yml` configuration file:
```yaml
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 structure
- `hyperepo check` - Validate symlink integrity
- `hyperepo status` - Show repository structure status
- `hyperepo create-links` - Create all configured symlinks
## Python API
```python
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
Raw data
{
"_id": null,
"home_page": "https://github.com/tysonzero/hyperepo",
"name": "hyperepo",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "monorepo, git, documentation, development, workflow",
"author": "Tyson",
"author_email": "tyson@example.com",
"download_url": "https://files.pythonhosted.org/packages/c7/cc/c3297c7235e7d52ea660b8b22f49255e941b8b9750f1c862a3f05e29cca4/hyperepo-0.0.1.tar.gz",
"platform": null,
"description": "# HyperRepo\n\nMonorepo pattern with symlinked meta repositories for clean documentation management.\n\n## Overview\n\nHyperRepo 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.\n\n## Features\n\n- **Clean Separation**: Code projects remain independent while sharing documentation\n- **Version Control**: Full git history for both code and meta documentation \n- **Zero Ceremony**: Simple YAML configuration with automatic symlink management\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n- **Template System**: Pre-built templates for common patterns\n\n## Installation\n\n```bash\npip install hyperepo\n```\n\n## Quick Start\n\n1. **Initialize a new hyperepo:**\n ```bash\n hyperepo init myproject\n ```\n\n2. **Check symlink integrity:**\n ```bash\n hyperepo check\n ```\n\n3. **View repository status:**\n ```bash\n hyperepo status\n ```\n\n4. **Create configured symlinks:**\n ```bash\n hyperepo create-links\n ```\n\n## Configuration\n\nHyperRepo uses a simple `hyperepo.yml` configuration file:\n\n```yaml\nversion: \"1.0\"\nmeta_repo: \"../myproject-meta\"\nsymlinks:\n - target: \"context\"\n source: \"context\"\n - target: \"prompts\"\n source: \"prompts\"\n - target: \"specs\"\n source: \"specifications\"\n```\n\n## Directory Structure\n\n```\nmyproject/\n\u251c\u2500\u2500 hyperepo.yml # Configuration\n\u251c\u2500\u2500 subproject-a/ # Git submodule\n\u251c\u2500\u2500 subproject-b/ # Git submodule \n\u251c\u2500\u2500 context \u2192 ../myproject-meta/context # Symlinked directories\n\u251c\u2500\u2500 prompts \u2192 ../myproject-meta/prompts\n\u2514\u2500\u2500 specs \u2192 ../myproject-meta/specifications\n\nmyproject-meta/ # Separate git repository\n\u251c\u2500\u2500 context/\n\u251c\u2500\u2500 prompts/\n\u2514\u2500\u2500 specifications/\n```\n\n## CLI Commands\n\n- `hyperepo init <name>` - Initialize new hyperepo structure\n- `hyperepo check` - Validate symlink integrity\n- `hyperepo status` - Show repository structure status \n- `hyperepo create-links` - Create all configured symlinks\n\n## Python API\n\n```python\nfrom hyperepo import HyperRepo\n\n# Initialize\nrepo = HyperRepo()\nrepo.init(\"../project-meta\")\n\n# Validate\nissues = repo.validate_symlinks()\nif not issues:\n print(\"All symlinks valid!\")\n\n# Create symlinks\nrepo.create_symlinks()\n```\n\n## Templates\n\nHyperRepo includes built-in templates for common patterns:\n\n- **standard**: Basic template with context, prompts, and specifications\n- **ai-dev**: AI development template optimized for AI-assisted workflows\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Contributing\n\nIssues and pull requests welcome at https://github.com/tysonzero/hyperepo",
"bugtrack_url": null,
"license": "MIT",
"summary": "Monorepo pattern with symlinked meta repositories for clean documentation management",
"version": "0.0.1",
"project_urls": {
"Documentation": "https://github.com/tysonzero/hyperepo",
"Homepage": "https://github.com/tysonzero/hyperepo",
"Repository": "https://github.com/tysonzero/hyperepo"
},
"split_keywords": [
"monorepo",
" git",
" documentation",
" development",
" workflow"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2bd60044ed321d0bbedc5b0e32e3d0b37334cc86b92acf2e298b48504bd4d7bf",
"md5": "dca3a4121ac4f0e43cc6aca389812800",
"sha256": "4c9d4983506642c1e5e6afbaaa96492aa382ad2de5d63bb9574e49fcf28e2b9f"
},
"downloads": -1,
"filename": "hyperepo-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dca3a4121ac4f0e43cc6aca389812800",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 8272,
"upload_time": "2025-07-31T01:53:23",
"upload_time_iso_8601": "2025-07-31T01:53:23.714006Z",
"url": "https://files.pythonhosted.org/packages/2b/d6/0044ed321d0bbedc5b0e32e3d0b37334cc86b92acf2e298b48504bd4d7bf/hyperepo-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c7ccc3297c7235e7d52ea660b8b22f49255e941b8b9750f1c862a3f05e29cca4",
"md5": "ff4ec47248c21ec3537d55d2398bf16e",
"sha256": "71756491272402db46add34b3dab3847d6b65f2d3f5e9dabc1d71d35bdf3939a"
},
"downloads": -1,
"filename": "hyperepo-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "ff4ec47248c21ec3537d55d2398bf16e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 5907,
"upload_time": "2025-07-31T01:53:25",
"upload_time_iso_8601": "2025-07-31T01:53:25.229467Z",
"url": "https://files.pythonhosted.org/packages/c7/cc/c3297c7235e7d52ea660b8b22f49255e941b8b9750f1c862a3f05e29cca4/hyperepo-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 01:53:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tysonzero",
"github_project": "hyperepo",
"github_not_found": true,
"lcname": "hyperepo"
}