Skip to main content
Native GitHub integration for repository management and collaboration.

Overview

Maestro provides first-class GitHub integration for:
  • Creating repositories
  • Cloning repositories and pull requests
  • Creating and updating pull requests
  • Managing branches and commits
  • Collaborating with teams
Access methods:
  • Natural language requests to Maestro
  • Explicit commands (/clone, /create, /pr)
  • Both trigger the same underlying workflows
Authentication: Link your GitHub account via top-right menu for private repository access.

Create Repository

Via Natural Language

Maestro guides you through the configuration flow.

Via Command

Opens interactive repository creation flow.

Configuration Options

Required:
  • Repository name
Optional:
  • Description
  • Visibility (public or private, defaults to private)
  • GitIgnore template (Python, Node, Go, etc.)
  • License template (MIT, Apache-2.0, GPL, etc.)
  • Organization (personal account or organization)
  • Auto-clone (enabled by default)

Auto-Clone Advantage

With auto-clone enabled (default):
  1. Repository created on GitHub
  2. Immediately cloned to your session
  3. Ready to start working
  4. Files synced to sandbox
Seamless workflow: Create → immediate development, no manual cloning.

Smart Initial Content Handling

If files exist in session matching repository name:
If no files exist:

Clone Repository

Clone Your Repositories

Via natural language:
Via command:
When you run /clone, you’ll be guided through selecting:
  • Privacy: Private (from your authenticated account) or Public (any accessible repository)
  • Repository: Choose from your account or enter a public URL
  • Branch/Commit: Select from recent branches, enter a specific commit hash, or use the default branch
After cloning, files are immediately available to Maestro with all tools working, synced to the sandbox, and the clone record persists even after memory clearing.

Clone Pull Requests

Direct PR URL cloning:
Maestro automatically:
  • Fetches PR metadata
  • Determines source branch
  • Handles forked PRs
  • Clones appropriate branch
  • Shows PR context (number, state, branch)
Supported PR URL formats:
Use cases:
  • Review someone’s PR
  • Test PR changes
  • Collaborate on feature branch
  • Understand proposed changes

Repository Size Limits

Current limit: 10 GB per repository (configurable) For larger repositories:
  • Clone specific subdirectories if possible
  • Contact support for assistance with very large repositories
  • Consider multi-session approach for modular development

Clone Records

Important behavior:
Stored information:
  • Repository URL
  • Branch or commit
  • Clone timestamp
  • Whether cloned from PR

Overwrite Clones: Pulling Remote Changes

Purpose

Pull changes from remote repository into your session. When to use:
  • Teammate pushed commits
  • Pull latest from main/develop
  • Sync your PR branch with base
  • Update dependencies or configuration

How It Works

Clone same repository again:

Catchup Pattern

After overwrite clone, understand what changed: Example catchup workflow:
Maestro will:
  • Compare both clones
  • Show diffs for all changed files
  • Explain what changed and why
  • Help you understand the current state

Conflict Handling

Current behavior: Overwrites take remote changes as truth Important: Push uncommitted session changes before overwrite cloning to avoid conflicts. Conflict resolution (if needed):

Pull Request Workflows

Understanding Maestro’s Workspace

Critical concept: Maestro’s workspace is separate from git.
Implication: Work as long as needed. Changes only go to GitHub when you explicitly create/update PR.

Creating New PR

Via natural language:
Via command:

PR Creation Flow

Step 1: Branch Configuration
  • Review repository URL
  • Set base branch (target)
  • Set feature branch name
  • Confirm or modify
Step 2: Git Analysis
  • Determine if creating new branch or updating existing
  • Identify changed files from base
  • Compute statistics (lines added/removed)
  • Handle three-way merge if updating existing
Step 3: File Selection
  • Interactive UI shows all modified/new files
  • Select which files to include in PR
  • Can deselect files you don’t want
  • Shows cumulative vs incremental changes (for updates)
Step 4: Final Confirmation
  • Provide/edit PR title and description
  • Review file selection and statistics
  • See complete diff of changes
  • Confirm or cancel
Step 5: Push and Create
  • Commits selected files
  • Pushes to GitHub
  • Opens pull request
  • Adds you as reviewer (for OAuth limitation transparency)

Updating Existing PR

Full synchronization workflow:
Critical: Updating is a full sync. Deselecting files during update:
Use case: Splitting features across multiple PRs.

PR Best Practices

Before creating PR:
PR quality checklist:
  • Clear, descriptive title
  • Comprehensive description explaining changes
  • All tests passing
  • No TODO comments unresolved
  • Documentation updated
  • Clean commit history
Collaborative PRs:

Branch Strategies

Feature Branch per Session

Recommended pattern:

Multiple PRs from Single Session

Possible but requires discipline:

Long-Running Feature Branches

Pattern:

Collaboration Workflows

Reviewing Team Member’s PR

Working on Forked Repositories

Fork-based development:

Team Coordination Patterns

Sequential collaboration:
Parallel collaboration:

Advanced Workflows

Multi-Repository Projects

Working across repositories:

Release Preparation

Hotfix Workflow

Troubleshooting

Clone Failed

Error: Repository too large Solution: Current limit is 10 GB. For larger repos, consider:
  • Cloning specific subdirectories
  • Multi-session approach
  • Contact support for special cases
Error: Authentication failed Solution: Ensure GitHub account linked in top-right menu. Error: Branch not found Solution: Verify branch name spelling. Try default branch.

PR Creation Failed

Error: No changes detected Cause: Files not modified or not selected Solution: Make changes, ensure Apply Changes ran, select files in PR flow. Error: Branch already exists Cause: Feature branch name conflicts with existing branch Solution: Choose different branch name or update existing PR.

PR Update Not Showing Changes

Check:
  1. Did you apply changes before creating PR?
  2. Were files actually modified?
  3. Did you select the changed files in PR flow?
Verify:

Best Practices

Repository Organization

Session file structure mirrors git:

Commit Messages

Let Maestro generate:
  • Based on actual changes
  • Follows conventional commit format
  • Descriptive and accurate
Or provide custom:

PR Descriptions

Effective PR descriptions include:
  • What changed and why
  • Testing approach
  • Performance impact
  • Breaking changes (if any)
  • Dependencies or prerequisites
  • Screenshots for UI changes
Template:

Incremental PRs

Small, focused PRs are easier to review:

Integration with CI/CD

Pre-PR Validation

Ensure CI will pass:

GitHub Actions Integration

Validate CI config before pushing:

Advanced Patterns

Stacked PRs

Building features incrementally:

Cross-Repository Features

Feature spans multiple repos:

Emergency Patches

Critical production fix:

Repository Management

Multiple Clones in Single Session

Use cases:

Repository Metadata

Maestro tracks:
  • All cloned repositories
  • Branch or commit for each
  • Clone timestamps
  • Whether from PR URL
Access:
This information persists across memory operations.

GitHub API Integration

Reading Repository Data

Maestro can query GitHub for:
  • Issues and pull requests
  • Workflow runs and status
  • Repository metadata
  • Branch information
Example:

Commenting on PRs

Limitations and Considerations

Authentication Required

For private repositories:
  • Must link GitHub account
  • OAuth authentication
  • Permissions respected (can only access what you can access)
For public repositories:
  • No authentication needed
  • Clone any public repo

Current Limitations

  • No automated conflict resolution** Manual guidance needed
    Repository size cap: 10 GB configurable limit
  • No git rebase/squash** Linear history for now
  • No submodule support yet** Planned enhancement

Workarounds

Conflicts:
  • Maestro can guide resolution by viewing both versions
  • Manually merge via intelligent editing
  • Use iteration history to track changes
Large repositories:
  • Clone subsets
  • Contact support for special cases

Best Practices Summary

Repository Operations

  • Clone early: Get code context before implementation
  • Update regularly: Overwrite clone to stay current
  • Track branches: Know which branch you’re on
  • Document clones: Maestro tracks, but you should understand

Pull Request Creation

  • Test first: All tests must pass before PR
  • Clean up: Remove WIP code, debug statements
  • Document changes: Clear descriptions
  • Review yourself: Check diffs before submitting
  • Small PRs: Easier to review and merge

Collaboration

  • Communicate intent: PR descriptions explain why
  • Link related work: Reference issues, other PRs
  • Respond to feedback: Update PRs based on reviews
  • Keep synced: Regular overwrite clones on active branches

Next Steps

With source control mastery: