Skip to main content

Remotes

A remote is a Git repository for sharing bundles and profiles across teams and projects.

Pre-configured Remote

After scm init, the scm-main remote is pre-configured, providing community bundles and profiles.

# Use remote profiles directly
scm run -p scm-main/python-developer "help with Python code"

Managing Remotes

scm remote list                     # List configured remotes
scm remote add <name> <url> # Register a remote source
scm remote remove <name> # Remove a remote
scm remote browse <name> # Browse remote contents
scm remote discover # Find public SCM repositories

Add a Remote

# GitHub shorthand
scm remote add myteam myorg/scm-team

# Full URL
scm remote add corp https://gitlab.com/corp/scm

Pulling Content

# Pull a bundle
scm remote pull scm-main/testing --type bundle

# Pull a profile
scm remote pull scm-main/python-developer --type profile

Pulled content is saved locally in your .scm/ directory.

Using Remote Content

Direct Reference

Reference remote content directly without pulling:

# Use remote profile
scm run -p scm-main/python-developer "help me"

# Use remote fragment
scm run -f scm-main/security#fragments/owasp "audit this"

In Profiles

Reference remote profiles as parents:

description: "My custom profile"
parents:
- scm-main/python-developer
bundles:
- my-local-additions

Discovering Remotes

Find public SCM repositories:

scm remote discover

This searches GitHub and GitLab for repositories with SCM content.

Creating Your Own Remote

Any Git repository with .scm/ structure can be a remote:

my-scm-repo/
├── .scm/
│ ├── bundles/
│ │ └── my-bundle.yaml
│ └── profiles/
│ └── my-profile.yaml
└── README.md

Push to GitHub/GitLab and share the repository URL.