AIShelf registries enforce security policies to protect your team. This guide covers registry structure, file requirements, security validation, and best practices.
What is an AIShelf Registry?
A GitHub repository with a specific structure that stores AI resources for your team:
- Centralized storage for AI workflows, rules, prompts, and skills
- Version control through Git and GitHub
- Team collaboration with access control via GitHub permissions
- Automatic syncing across all team members' IDEs
Structure Requirements
your-registry/
├── ai_shelf_registry.json ← Required: Registry metadata
└── packages/ ← Required: Contains all packages
└── package-name/ ← Package folder (any name)
├── workflows/ ← Optional: Workflow files
├── rules/ ← Optional: Rule files
├── skills/ ← Optional: Skill files
└── prompts/ ← Optional: Prompt filesRequired: ai_shelf_registry.json
This file contains metadata about your registry:
{
"name": "Your Registry Name",
"description": "What this registry contains",
"version": "1.0.0",
"created": "2026-03-12"
}Package Structure
- No
package.jsonrequired - organize however you want - Create folders for resource types:
workflows/,rules/,skills/,prompts/ - All files must be text-based (see File Requirements below)
File Requirements & Restrictions
Allowed File Types
- Markdown files (
.md) - Recommended - Text files (
.txt) - JSON files (
.json) - YAML files (
.yaml,.yml) - XML files (
.xml) - CSV files (
.csv) - Any other text-based formats
Blocked File Types
Shell scripts:
.sh, .bash, .zsh, .fish, .ksh, .csh
Windows scripts:
.bat, .cmd, .ps1, .vbs, .vbe, .wsf, .wsh, .msc, .reg
Executables:
.exe, .com, .msi, .deb, .rpm, .pkg, .dmg, .app, .run, .bin
Language runtimes:
.py, .pyw, .rb, .rake, .pl, .php, .js, .mjs, .cjs, .ts, .jar, .war, .ear, .lua
Binary/compiled:
.so, .dll, .dylib, .class, .o, .a
macOS automation:
.applescript, .scpt
Size Limit
Maximum file size is 500KB. Files larger than this will be rejected during sync.
Encoding Requirement
All files must be valid UTF-8 text. Binary files are automatically rejected.
File Naming Best Practices
- Use descriptive names:
pr-review-checklist.mdnotworkflow1.md - Use hyphens for spaces:
code-review-helper.md - Include version in name if needed:
api-docs-v2.md
Repository Access Model
AIShelf operates with a read-focused approach to protect your repositories:
Read Operations (Automatic)
When you connect to a registry, AIShelf performs these operations automatically:
- Clone: Creates a local copy of your registry on your machine
- Pull: Syncs the latest changes from GitHub to your local copy
- Read: Displays registry content in your IDE
Write Operations (User-Initiated Only)
AIShelf only writes to repositories when you explicitly request it:
- Create New Registry: When you choose to create a new repository through AIShelf
- Publish Changes: When you explicitly publish your local changes to GitHub
Local-Only Operations
What This Means for You
- Your repositories are safe from accidental modifications
- You maintain full control over what gets pushed to GitHub
- All changes are reviewed by you before publishing
- We recommend maintaining regular backups of your repositories as a best practice
Security Validation System
AIShelf uses multiple layers of security to protect you:
1. File Extension Validation
Blocks 40+ dangerous file types to prevent executable code.
2. UTF-8 Encoding Check
Ensures all files are text-based and catches binary files.
3. File Size Validation
500KB limit per file prevents repository bloat.
4. Path Traversal Protection
Blocks ../ and absolute paths.
5. OS-Level Permission Stripping (Linux/macOS)
Removes execute permissions from all files. On Windows, relies on extension blocklist.
User Control
Your Responsibility
Best Practices
For Registry Creators
- Use Markdown (
.md) for all resources - Keep files under 100KB for best performance
- Organize packages by team/project
- Include descriptive
ai_shelf_registry.json - Use meaningful package names
- Don't upload code examples with executable extensions
For Registry Users
- Review registry contents before connecting
- Sync regularly to get team updates
- Report suspicious registries to support
Why These Restrictions?
Security First
- Protects users from malicious code execution
- Prevents supply chain attacks via registries
- Ensures team safety when sharing resources
Performance
- Text files load instantly
- Small files sync quickly
- No bandwidth waste on large binaries
Compatibility
- UTF-8 text works everywhere
- Markdown renders beautifully in all IDEs
- No platform-specific issues
Frequently Asked Questions
Can I store code examples in my registry?
.md files) to include code examples safely. Don't upload actual .js, .py, or other executable files. For example:# Python Testing Workflow
```python
def test_example():
assert 1 + 1 == 2
```
Use this pattern for all your tests.What if I need to share a script with my team?
Can I use my existing GitHub repo as a registry?
ai_shelf_registry.json file and follows the structure requirements. AIShelf will validate it when you connect.