Archive and restore
Remove a skill without destroying it — and bring it back if you change your mind
airskills rm does not permanently delete a skill. It archives it: the
skill stops appearing in listings, its URL stops resolving, but it stays
safe in case you change your mind.
airskills rm my-old-skill
If you later decide you want it back:
airskills restore my-old-skill
The skill reappears, exactly as it was when you archived it, including its full history.
What other people see
If anyone has installed your skill via airskills add, their next
airskills pull shows:
! my-old-skill: upstream archived. Local copy kept.
Their copy is not deleted from their machine. They keep what they had. They will not get future updates from you (because there are no future updates), but what they already have keeps working.
This is the same behaviour as transfer — from the consumer's seat, "archived" and "transferred away" look identical. The underlying skill went away from the address they installed it from.
Restoring under a different name
If you want to bring back an archived skill under a new name, use the
--slug flag:
airskills restore my-old-skill --slug my-new-skill
Useful when the old slug is taken (perhaps a newer skill of yours occupies it now), or when the old name never felt right anyway.
Is there a hard delete?
Not via the CLI. Archived skills are kept for a retention period so you can recover them. After that they are permanently removed.
If you need a skill gone for compliance or security reasons sooner than the retention window, book a call and we'll handle it.
Archive vs transfer vs rename
All three change what consumers see. Which one to use:
- Rename — same skill, new name, same owner. Consumers keep getting updates under the new name.
- Transfer — change who owns the skill. Consumers see the old slug as archived.
- Archive (
rm) — you no longer want this skill to exist at all. Consumers see the old slug as archived. No new home.
Deep dive: how archive works
For curious developers — skip if you just want to use it.
Archiving sets deleted_at on the skill row rather than deleting the
row outright. SELECT-policies on the skills table filter out
deleted_at IS NOT NULL, so the skill disappears from every list and
every public page returns 410 Gone.
On the CLI side, airskills rm writes a small .airskills-deleted
tombstone file into the local skill directory. The CLI uses the
tombstone on subsequent pushes to know that the directory represents
a deleted skill rather than a new one — without it, airskills push
would see the directory, not find a matching server skill, and try
to create it again.
airskills restore does the inverse: clears deleted_at server-side
and removes the tombstone locally. If a --slug override is passed,
the restore goes through the rename path first so the skill comes
back under the new name.
Storage objects (the content bytes of each commit) are retained alongside the archive row. Restore does not need to re-upload.
Was this page helpful?