Monorepo experience, multi-repo reality.
Viewyard creates synchronized development environments across multiple Git repositories. Instead of forcing everything into a monorepo or manually juggling scattered repos, Viewyard gives you the best of both worlds: lightweight coordination without monorepo complexity.
Why Viewyard?
- Monorepos are slow to clone, complex to build, and create tight coupling
- Scattered repos lack coordination and require manual branch management
- Viewyard provides synchronized branches across repositories with flexible organization
# 1. Install and authenticate
gh auth login # One-time GitHub CLI setup
# 2. Create a viewset (project workspace)
viewyard viewset create my-project # Interactive repository selection
# 3. Create a view (synchronized branch workspace)
cd my-project
viewyard view create feature-123 # Creates branch across all repos
# 4. Work normally - all repos are synchronized on the same branch
cd feature-123
# Edit files in any repository...
# 5. Coordinate across repositories
viewyard status # Status of all repos
viewyard commit-all "Add feature" # Commit to all dirty repos
viewyard push-all # Push all repos with commitsviewyard viewset create <name> # Create new project workspace
viewyard viewset create <name> --account <github-user> # From specific account
viewyard viewset update # Add new repositories to existing viewsetviewyard view create <branch-name> # Create synchronized branch workspace
viewyard view update # Add new repositories from viewset to current viewviewyard status # Status of all repos (validates branch sync)
viewyard commit-all "message" # Commit to all dirty repos
viewyard push-all # Push repos with commits ahead
viewyard rebase # Rebase all repos against their default branch# One-time setup - authenticate with GitHub CLI
gh auth login
# Supports multiple accounts for work/personal separationviewyard viewset create my-project
# Interactive selection from your GitHub repositories
# Creates .viewyard-repos.json configuration filecd my-project
viewyard view create feature-123
# Creates 'feature-123' branch in all repositories
# All repos are synchronized on the same branchcd feature-123
# Edit files in any repository
# All repositories are on the same branch for coordinated developmentviewyard status # See status of both repos (branch sync validated)
viewyard commit-all "Add user authentication"
viewyard push-all # Push both reposcd .. # Back to viewset root
viewyard view create bug-fix-456 # Creates new synchronized branch workspacemy-project/ # Viewset (project workspace)
βββ .viewyard-repos.json # Repository configuration
βββ feature-123/ # View (synchronized branch workspace)
β βββ web-frontend/ # Repository on 'feature-123' branch
β βββ api-backend/ # Repository on 'feature-123' branch
βββ bug-fix-456/ # Another view
βββ web-frontend/ # Repository on 'bug-fix-456' branch
βββ api-backend/ # Repository on 'bug-fix-456' branch
Key Benefits:
- Minimal configuration - only one JSON file per viewset (auto-generated)
- Hierarchical organization - viewsets contain multiple synchronized views
- Branch synchronization - all repos in a view are on the same branch
- Automatic detection - context determined from directory structure
- Clean deletion - just
rm -rf viewset-namewhen done
You can bypass interactive selection by creating the .viewyard-repos.json file directly:
# Create a viewset directory
mkdir my-project && cd my-project
# Create the repository configuration manually
cat > .viewyard-repos.json << 'EOF'
[
{
"name": "frontend",
"url": "git@github.com:myorg/frontend.git",
"is_private": false,
"source": "GitHub (myorg)"
},
{
"name": "backend",
"url": "git@github.com:myorg/backend.git",
"is_private": true,
"source": "GitHub (myorg)"
}
]
EOF
# Now create views normally
viewyard view create feature-123- Installation & Setup - Prerequisites, GitHub CLI setup, troubleshooting
- Examples & Workflows - Detailed usage examples and team patterns
- Security & Privacy - Data handling and security considerations
- Contributing - Development setup and contribution guidelines
Viewyard automatically discovers repositories from your GitHub accounts:
- Personal repositories from your authenticated account
- Organization repositories from organizations you belong to
- Multiple account support for work/personal separation
Monorepo experience, multi-repo reality.