Adding Artifacts to Your Collection¶
Learn how to add artifacts from three sources: the SkillMeat marketplace, GitHub repositories, or your local filesystem. This guide covers the complete workflow for each source, from discovery through verification.
Walkthroughs available
See the New Project Developer Walkthrough for onboarding or the ML Engineer Walkthrough for advanced artifact import workflows.
Overview¶
SkillMeat's artifact sources give you flexibility in how you build your collection:
| Source | Best For | Authentication |
|---|---|---|
| Marketplace | Published, tested artifacts with governance | None required (optional token for publishing) |
| GitHub | Custom artifacts, private repositories, specific versions | GitHub token for private repos |
| Local | Artifacts you've created locally, path-based sources | None |
The entire process is accessible via both CLI and Web UI. Choose whichever fits your workflow.
Prerequisites¶
Before adding artifacts, you need:
- SkillMeat installed — See Quickstart Guide
- Collection initialized — Run
skillmeat initor use the Web UI setup. See Collection Initialization & Configuration - Optional: GitHub token — Required only for private repositories. See Authentication Setup for details
To verify your collection is ready:
Add from the Marketplace¶
The SkillMeat marketplace contains pre-built, tested artifacts published by the community and Anthropic.
Using the CLI¶
Add a marketplace artifact by name:
Or use the shorthand (marketplace is default):
Finding marketplace artifacts
Use skillmeat search to find available artifacts:
Using the Web UI¶
- Open the Web UI
- Navigate to Collection → Add Artifact
- Select Marketplace tab
- Search for artifacts by name, type, or tag
- Select an artifact to view details
- Review permissions and dependencies (displayed in modal)
- Confirm to add to your collection
The artifact is now added and ready to deploy.
Verify Installation¶
For more details on marketplace features, version pinning, and publishing, see Marketplace Full Guide.
Add from a GitHub Repository¶
Add artifacts directly from a GitHub repository. You can specify versions, paths to nested artifacts, and use either public or private repositories.
GitHub Source Format¶
The standard format for GitHub sources is:
Components:
- username — GitHub username (or organization)
- repo — Repository name
- path/to/artifact — Path within the repository (often .claude/skills/skill-name, etc.)
- @version — Optional version specifier
Version options:
- @latest — Latest release or main branch (default if omitted)
- @v1.2.0 — Specific version tag
- @abc1234 — Specific commit SHA (7 digits or more)
Examples¶
# Latest version of a public artifact
skillmeat add anthropics/skills/canvas-design
# Specific version (tag)
skillmeat add user/repo/path/to/skill@v2.0.0
# Specific commit
skillmeat add user/repo/path/to/agent@abc1234
# Nested path
skillmeat add org/repo/.claude/agents/code-reviewer
Using the CLI¶
Add an artifact from GitHub:
You'll see a permissions prompt. Review the artifact details:
Fetching from GitHub: anthropics/skills/canvas-design...
Artifact: canvas-design
Type: skill
Size: 156 KB
Dependencies: None
Permissions: Modify filesystem
[y/n] Continue?
Review the warnings and confirm with y to add.
Private repositories
If adding from a private repository, ensure you have a GitHub token configured:
See Authentication Setup for full details.Using the Web UI¶
- Open the Web UI
- Navigate to Collection → Add Artifact
- Select GitHub tab
- Enter the GitHub source:
- Enter in the format
username/repo/path[@version] - Or use the Repository Browser to navigate
- Select the artifact
- Review permissions (displayed in modal)
- Confirm to add to your collection
Verify Installation¶
Look for an artifact with origin github:
Navigate to Collection → Artifacts. Your new artifact shows with a "GitHub" origin badge and version information.
For advanced GitHub features and private repository handling, see Authentication Setup.
Add from a Local Source¶
Add artifacts you've created locally or downloaded manually to your collection.
Using the CLI¶
Add an artifact from a local path:
Or from an absolute path:
The system validates the artifact structure and adds it with a local source designation.
Local artifact requirements
Your artifact directory must contain:
- Valid frontmatter in a .md file (for metadata)
- Code files (.py, .ts, .js, etc.)
- Optional: dependencies.txt or package.json for dependencies
Using the Web UI¶
- Open the Web UI
- Navigate to Collection → Add Artifact
- Select Local tab
- Choose method:
- Browse — Select folder from your system
- Paste path — Enter the full path to your artifact
- Confirm the artifact details
- Review permissions in the modal
- Confirm to add to your collection
Verify Installation¶
Your artifact appears with origin local:
Navigate to Collection → Artifacts. Your new artifact shows with a "Local" origin badge.
Link Your Custom Skill to a GitHub Upstream¶
Sometimes you've written or heavily customized a skill — maybe you forked an upstream skill and made it your own — and you want both things to be true at once:
- Your version is the canonical content in your collection and projects.
- The GitHub upstream is recorded as the origin so SkillMeat can show you diffs, track provenance, and let you compare against the original.
This is the "link without losing my version" pattern. It takes a few extra steps because there is no single command that sets both the upstream link and installs your content in one shot — you need to thread them together using add (to establish the link) and sync-pull --strategy overwrite (to flow your content in while keeping the link intact).
Why you can't just re-add from your local directory
Running skillmeat add skill ./my-skill --name skill-seekers --force after a GitHub import resets the origin to local and removes the upstream link entirely. The add command treats local paths as local-origin artifacts unconditionally. update --strategy local is not a workaround — it means "skip this artifact during updates," not "install from a local path."
Prerequisites¶
- A GitHub repository containing the upstream version of the skill. You need the path in the format
user/repo/path/to/skill. - Your customized version of the skill's files available locally.
- A spare directory to use as a staging project (a temporary local folder — it doesn't have to be a real project).
Worked Example: skill_seekers¶
Suppose you have a customized version of skill_seekers (originally from yusufkaraaslan/Skill_Seekers) and you want your collection to show:
- Origin:
github - Upstream source:
yusufkaraaslan/Skill_Seekers/skills/skill-seekers - Content: your version (v2.0, with expanded tools and updated instructions)
Here is the complete command sequence.
Step 1: Snapshot your collection (safety)¶
Also copy your skill files to a safe location outside your collection, in case you need them:
Step 2: Import the GitHub baseline to establish the upstream link¶
skillmeat add skill yusufkaraaslan/Skill_Seekers/skills/skill-seekers \
--name skill_seekers \
--force \
--dangerously-skip-permissions
--forceoverwrites any existingskill_seekersentry in your collection.- The import sets
origin=github, records the upstream URL, and pins the resolved commit SHA. - The content in your collection is now the upstream baseline — not your version yet.
No @ref needed for the default branch
If you omit @ref, SkillMeat resolves the repository's actual default branch automatically. If the upstream repo uses development instead of main as its default branch, that is what gets resolved.
Step 3: Deploy the upstream baseline to a staging project¶
Create an empty directory to use as a throwaway staging area:
mkdir -p /tmp/sm-staging
skillmeat deploy skill_seekers --project /tmp/sm-staging --overwrite --no-recipe-preview
This creates /tmp/sm-staging/.claude/skills/skill_seekers/ with the upstream baseline content.
Step 4: Replace the staging content with your version¶
Copy your customized files over the baseline:
Your files are now in the staging project. The upstream link in the collection is still intact.
Step 5: Flow your version back into the collection¶
skillmeat sync-pull /tmp/sm-staging \
--strategy overwrite \
--artifacts skill_seekers \
--no-interactive
This copies your content into the collection and updates the lock hash. It does not rewrite the manifest, so origin, upstream, and resolved_sha remain exactly as they were set in Step 2.
Step 6: Deploy to your real project¶
Step 7: Verify¶
# Check origin is still github
skillmeat show skill_seekers
# Confirm no drift (content hash matches)
skillmeat sync-check /path/to/your/project
skill_seekers should be absent from the drift list, meaning the deployed content hash matches the collection. The show output should display origin: github and the upstream URL.
What to Expect Afterward¶
Upstream diffs are available. Because resolved_sha is pinned to the GitHub commit you imported in Step 2, SkillMeat can diff your content against that baseline. Use the Sync tab in the web UI or skillmeat diff skill_seekers --upstream to see what you changed relative to the upstream.
Auto-update is pinned by default. The artifact's version is pinned to the SHA resolved during the import. Running skillmeat update --strategy upstream would pull the upstream's current HEAD over your content. That is intentional — you are in control of when (and whether) to pick up upstream changes. If you do want to pull an upstream update later, run skillmeat update skill_seekers and then re-apply your customizations.
Displayed description may be stale. The skillmeat show and skillmeat list output (and the web UI metadata card) display the description and name extracted from the upstream's frontmatter at import time. They will not automatically update to reflect your version's frontmatter until a future refresh-metadata capability is added. The content is correct — only the displayed description metadata lags. Treat the content hash match from sync-check as the real success signal.
History is not populated. The local edition of SkillMeat does not yet generate history events for add, sync-pull, or deploy operations. Provenance lives in resolved_sha and the content hash recorded in the lock file, not in a visible history log.
Verify Your Collection¶
After adding artifacts, verify they're properly stored:
Quick Count¶
Check Artifact Details¶
Troubleshooting¶
"Authentication failed" (Private GitHub Repo)¶
Problem: Error when adding from a private GitHub repository.
Solution: 1. Verify your GitHub token is set:
2. If missing, set it: 3. Try adding againSee Authentication Setup for full token setup.
"Artifact not found" (GitHub Path)¶
Problem: The path user/repo/path doesn't exist or is spelled incorrectly.
Solution:
1. Verify the path exists in GitHub:
- Visit https://github.com/user/repo/tree/main/path/to/artifact
- Ensure the file structure is correct
2. Check the artifact source format: username/repo/path/to/artifact[@version]
3. Try the full path without abbreviations
"Version not found" (GitHub Version)¶
Problem: The version @v1.2.0 doesn't exist.
Solution:
1. Check available versions on GitHub:
- Visit the Releases page in the repository
- Confirm the version tag exists
2. Use @latest to get the default branch version
3. Or use a commit SHA: @abc1234 (7+ characters)
"Permission denied" (Local Path)¶
Problem: Cannot add artifact from local path due to permissions.
Solution: 1. Verify the directory exists and is readable:
2. Ensure you have read access: 3. Try adding again"Already in collection" (Duplicate)¶
Problem: Attempting to add an artifact that's already imported.
Solution: - This is normal. You can: - Skip the duplicate - Update the existing artifact to a newer version (see Sync, Version Management & Rollback) - Remove and re-add if needed
Next Steps¶
After adding artifacts to your collection:
- Deploy to a project — Make artifacts available in your
.claude/directory. See Deploying Artifacts - Explore marketplace — Browse more artifacts and learn about governance. See Marketplace Full Guide
- Manage versions — Pin versions, sync updates, and rollback if needed. See Sync, Version Management & Rollback
- Link a custom skill to its GitHub origin — Keep your version canonical while tracking upstream. See Link Your Custom Skill to a GitHub Upstream above
- Organize your collection — Use tags, groups, and snapshots for better organization
Related Guides¶
- Collection Initialization & Configuration — Set up your collection
- Deploying Artifacts — Deploy artifacts to your projects
- Sync, Version Management & Rollback — Manage artifact versions, pinning, and rollback
- Syncing Project Changes — Detect and resolve drift between projects and your collection
- Marketplace Full Guide — Search, publish, and governance
- Authentication Setup — Configure GitHub tokens and auth