Profiles & Sharing
Profiles let you maintain different package sets for different machines or contexts (e.g., work vs. personal).
Creating Profiles
bash
/ct profile work --create # Create a "work" profile
/ct profile personal --create # Create a "personal" profileSwitching Profiles
bash
/ct profile work # Switch to work profile
/ct profile personal # Switch to personal profile
/ct profile default # Switch back to defaultListing Profiles
bash
/ct profilesOutput shows all profiles with the active one marked with *.
How Profiles Work
Profiles are stored in cat.yaml under the profiles section:
yaml
meta:
activeProfile: work
packages:
team:
source: npm:@pi-stef/team
enabled: true
web:
source: npm:@pi-stef/web
enabled: true
profiles:
work:
packages:
atlassian:
source: npm:@pi-stef/atlassian
enabled: true
figma:
source: npm:@pi-stef/figma
enabled: true
personal:
packages:
web:
source: npm:@pi-stef/web
enabled: falseA profile's packages are merged on top of the base packages. A profile can:
- Add packages not in the base set
- Override properties (like
sourceorenabled) of base packages - Disable a base package by setting
enabled: false
Syncing Profiles
Each profile syncs to its own GitHub Gist (identified by description catalog-<profile-name>):
bash
/ct sync --profile work # Sync work profile to its gist
/ct sync --profile personal # Sync personal profile to its gistSharing Catalogs
Share your catalog
Your catalog is stored as a GitHub Gist. To share it:
- Find your gist at
https://gist.github.com/<your-username> - Look for a gist described as
catalog-default(orcatalog-<profile>) - Share the gist ID or URL
Import someone else's catalog
bash
/ct init --from-gist=<gist-id>
/ct syncThis replaces your entire local catalog with the imported one, including all profiles.
Limitations
/ct init --from-gistreplaces your entire catalog — it does not merge- There is no command to import a single profile from another user's gist
- You can manually copy profile entries between
cat.yamlfiles