Team Sync

Share team configs,
keep secrets personal

Sync shared team configurations across your organization with automatic symlink management. Team configs seamlessly integrate with tools like Claude Code, while personal dotfiles stay encrypted.

Perfect for growing teams

One tool, two sync repositories

Team Repository

Shared, read-only configurations for everyone

Editor configs (.editorconfig, .prettierrc)
Shared shell aliases and functions
Git aliases and configurations
Company-wide tool settings
team.zshrc
# Company aliases
alias deploy='./scripts/deploy.sh'
alias logs='kubectl logs -f'

Personal Repository

Private, encrypted, always takes priority

Your personal shell configs (.zshrc)
Git config with your email & signing key
SSH keys, AWS credentials
Custom overrides of team configs
.zshrc (encrypted)
# Source team configs first
source ~/.tether/team-sync/team.zshrc

# Personal settings override

How team sync works

Three roles, automatic detection

1

Team Admin Creates Repo

bash
# Admin creates team repo
$ mkdir team-configs && cd team-configs

# Add team dotfiles
$ cat > team.zshrc << 'EOF'
$ alias deploy='./deploy.sh'
$ alias logs='kubectl logs -f'
$ EOF

$ git init && git push
$ 

Admin pushes shared configs to private team repository

2

Members Add Team Sync

bash
# Add team repository
$ tether team add git@github.com:co/configs

# Tether detects permissions
✓ Read-only access detected
✓ Team sync configured

# Auto-injects source line
$ Added to ~/.zshrc:
$ source ~/.tether/team-sync/team.zshrc
$ 

Tether auto-detects Git permissions and configures accordingly

3

Syncs Automatically

bash
# Regular sync pulls both repos
$ tether sync

ℹ Pulling latest changes...
✓ Personal configs synced
ℹ Pulling team configs...
✓ Team configs updated

✓ Sync complete!
$ 

Team configs update automatically across all members

Automatic symlink management

Team configs seamlessly integrate with your tools

How Symlinks Work

Team configs are cloned to ~/.tether/team-sync/ and Tether automatically creates symlinks for individual files and subdirectories into the locations your tools expect. Your existing directories like ~/.claude/ are NOT replaced—team items are symlinked alongside your personal files.

Team Repository Structure

bash
$ team-configs/
├── dotfiles/team.zshrc
└── .claude/skills/
    ├── code-review/
    └── team-testing/
$ 

After Team Sync

bash
~/.claude/skills/
├── my-skill/        # Personal
├── code-review →    # Team symlink
└── team-testing →   # Team symlink
$ 

Perfect for Team Tools

Use symlinks to share configurations for development tools across your team:

Claude Code Skills

Share custom AI workflows

~/.claude/

VS Code Settings

Team editor configurations

~/.vscode/

Tool Configs

Any config directory

~/.config/

Individual Item Symlinks

Tether symlinks individual files and subdirectories from the team repository into your existing directories. This means your personal items and team items coexist in the same parent directory.

1

Existing Directories Preserved

Your ~/.claude/ directory already exists and remains unchanged

2

Team Items Added Inside

Team repository has .claude/skills/code-review/, so Tether symlinks just that subdirectory into ~/.claude/skills/

3

Personal & Team Coexist

Your ~/.claude/skills/ now contains both your personal skills AND the symlinked team skills

Key Point: Tether never replaces entire directories like ~/.claude/. It only adds symlinks for individual items from the team repository into your existing directory structure.

Example: Sharing Claude Code Skills

Before Team Sync (Personal Setup)

bash
# User already has personal skills
~/.claude/
└── skills/
    └── personal-skill/
        └── my-workflow.md
$ 

Team Admin Creates Repository

bash
# Create team repository
$ mkdir team-configs
$ cd team-configs

# Add Claude Code skills
$ mkdir -p config-dirs/.claude/skills/code-review
$ mkdir -p config-dirs/.claude/skills/team-testing

# Create team skills
$ cat > config-dirs/.claude/skills/code-review/deploy.md << 'EOF'
# Deploy Command
$ Run the deployment script for production
$ EOF

$ cat > config-dirs/.claude/skills/team-testing/test.md << 'EOF'
# Test Command
$ Run the test suite
$ EOF

# Push to team repository
$ git init && git add . && git commit -m "Add team skills"
$ git push
$ 

Team Member Adds Team Sync

bash
# Add team repository
$ tether team add git@github.com:company/team-configs.git

ℹ Syncing team configs...
✓ Team configs cloned to ~/.tether/team-sync/
✓ Created symlink: ~/.claude/skills/code-review → ~/.tether/team-sync/.claude/skills/code-review/
✓ Created symlink: ~/.claude/skills/team-testing → ~/.tether/team-sync/.claude/skills/team-testing/
✓ Team sync complete!
$ 

After Team Sync (Personal + Team)

bash
# User now has both personal AND team skills
~/.claude/
└── skills/
    ├── personal-skill/          # Personal (unchanged)
    │   └── my-workflow.md
    ├── code-review → ~/.tether/team-sync/.claude/skills/code-review/    # Team symlink
    └── team-testing → ~/.tether/team-sync/.claude/skills/team-testing/  # Team symlink

# Claude Code sees all skills
$ claude --list-skills
$ Available skills:
  - personal-skill (personal)
  - code-review (team)
  - team-testing (team)
$ 

Smart access control

Automatic permission detection based on Git repository access

Regular Team Members

Read-Only Mode

Automatically configured when you have read-only Git access:

Pull team configs automatically
Source team files from personal configs
Never push to team repository
Access Mode: Read-only

Team Admins

Read-Write Mode

Automatically detected when you have write Git access:

Pull team configs automatically
Edit team configs directly
Push updates to team repository
Access Mode: Read-write (Admin)

Automatic Permission Detection

Tether automatically detects your Git repository permissions during setup. No manual configuration needed—just add the team repo URL and Tether configures the correct access mode.

Security Design

Team repos are not encrypted

By design, team repositories contain only non-sensitive shared configurations. They're protected by Git access controls, not encryption. This avoids complex key distribution while maintaining security.

Secret scanning warns if sensitive data detected
Personal repos remain fully encrypted
Git access controls protect team repo

Safe for Team Repos

  • • Editor configurations
  • • Shared shell aliases
  • • Git aliases & settings
  • • Tool configurations

Use Secrets Manager

  • • API keys & tokens
  • • Database credentials
  • • SSH private keys
  • • Service URLs (if sensitive)

Simple commands

Manage team sync with ease

tether team add <url>

Add team repository and configure sync

bash
$ tether team add git@github.com:company/team-configs.git
$ 

tether team status

View team sync configuration and files

bash
$ tether team status

┌──────────────┬────────────────────┐
│ Team Sync    │                    │
├──────────────┼────────────────────┤
│ Status       │ ● Enabled          │
│ Repository   │ git@github.com:... │
│ Access Mode  │ Read-only          │
│ Team files   │ 3 files            │
└──────────────┴────────────────────┘
$ 

tether team enable

Enable team sync (toggle on)

tether team disable

Disable team sync (toggle off)

tether team remove

Remove team sync configuration

Start syncing your team today

One setup command. Automatic sync. Perfect for teams of any size.