Skip to content

v0.1.0 — initial release

Choose a tag to compare

@Alecell Alecell released this 10 May 21:54
· 16 commits to main since this release

perskent is a CLI for managing Claude Code skills, agents, and commands via your own private Git registry. This is the first usable release.

Installation

One-liner (Linux / macOS, requires Python 3.11+):

```bash
curl -fsSL https://raw.githubusercontent.com/Alecell/Perskent/main/install.sh | sh
```

Or via pipx directly:

```bash
pipx install git+https://github.com/Alecell/Perskent.git
```

After install, configure your registry:

```bash
pskt init # asks for your private registry repo URL + token
pskt doctor # verifies everything
```

Commands shipped in v0.1.0

Command What it does
`pskt init` Configure remote registry (URL + token) and clone workspace
`pskt doctor` Diagnostics (Python, git, paths, registry reachability)
`pskt sync` `git pull` on the local registry workspace
`pskt find remote` List packages available in the registry
`pskt find local` List packages installed in root and project scopes
`pskt show ` Package details (metadata + files to install + install status)
`pskt search ` Search packages by name or description
`pskt install [root|project] [--force]` Install with file-level conflict detection
`pskt remove <root|project>` Uninstall with recursive empty-folder cleanup
`pskt update ` Upgrade, preserving files marked in `[update].preserve`

Highlights

  • Dual scope: install globally in `~/.claude/` (root) or per-project in `./.claude/`
  • Type signal via folder: registry layout is `/<agents|skills|commands>//`
  • `[update].preserve` in manifest protects user data (e.g. accumulated agent memory) across version bumps
  • OS keyring for token storage, with `chmod 600` file fallback (WSL2 / headless friendly)
  • Atomic install: file conflicts abort before touching the filesystem
  • 45 end-to-end scenarios validated before tagging

Manifest schema

```toml
[package]
name = "my-agent"
version = "1.0.0"
description = "..."
author = "you"

[update] # optional
preserve = [
"agent-memory/my-agent/MEMORY.md", # exact file
"agent-memory/my-agent/notes/", # whole folder (trailing /)
]
```

Requirements

  • Python 3.11+ on PATH
  • A private GitHub repo (or any Git remote) to use as your registry — perskent does not host a central one

Next on the roadmap

  • `pskt push ` — edit a package locally in `~/.pskt/`, bump, commit, push (no manual git involvement)