npx agentspec-cli install 44dc6e48-dc8b-46cb-819e-44cd8f17aa62 --framework ClaudeCode→ .claude/skills/cli/SKILL.md
# pdsx CLI
Use `uvx pdsx` (or `uv run pdsx` for local dev) for ATProto record operations.
## Authentication
Reads don't need auth, just `-r/--repo`. Writes need `--handle` and `--password`:
```bash
# reads - no auth
uvx pdsx -r someone.bsky.social ls app.bsky.feed.post
# writes - auth required
uvx pdsx --handle you.bsky.social --password xxxx-xxxx create app.bsky.feed.post text='hello'
```
You can also set env vars: `ATPROTO_HANDLE`, `ATPROTO_PASSWORD`
## Commands
| Command | Aliases | Description |
|---------|---------|-------------|
| `list` | `ls` | list records in a collection |
| `get` | `cat` | get a specific record |
| `create` | `touch`, `add` | create record(s) |
| `update` | `edit` | update record(s) |
| `delete` | `rm` | delete record(s) |
| `upload-blob` | - | upload image/video |
| `whoami` | `me`, `identity` | show authenticated identity |
## Examples
```bash
# list posts from someone
uvx pdsx -r zzstoatzz.io ls app.bsky.feed.post
# get a specific post
uvx pdsx get at://did:plc:xxx/app.bsky.feed.post/abc123
# get someone's profile
uvx pdsx -r zzstoatzz.io get app.bsky.actor.profile/self
# create a post
uvx pdsx --handle you.bsky.social --password $APP_PASSWORD create app.bsky.feed.post text='hello from pdsx'
# check who you're authenticated as
uvx pdsx --handle you.bsky.social --password $APP_PASSWORD whoami
# delete a post
uvx pdsx --handle you.bsky.social --password $APP_PASSWORD rm at://did:plc:xxx/app.bsky.feed.post/abc123
```
## Batch Operations
Pipe JSONL to stdin for batch operations:
```bash
# batch create
echo '{"text":"post 1"}
{"text":"post 2"}' | uvx pdsx --handle ... create app.bsky.feed.post
# batch delete
echo 'at://did:plc:xxx/app.bsky.feed.post/abc123
at://did:plc:xxx/app.bsky.feed.post/def456' | uvx pdsx --handle ... rm
# batch update (JSONL with uri field)
echo '{"uri":"at://...","text":"updated text"}' | uvx pdsx --handle ... update
```
## Output Formats
Use `-o/--output` for different formats:
```bash
uvx pdsx -r someone.bsky.social ls app.bsky.feed.post -o json
uvx pdsx -r someone.bsky.social ls app.bsky.feed.post -o yaml
uvx pdsx -r someone.bsky.social ls app.bsky.feed.post -o table
uvx pdsx -r someone.bsky.social ls app.bsky.feed.post -o compact # default for list
```
## Common Collections
| Collection | Purpose |
|------------|---------|
| `app.bsky.feed.post` | posts |
| `app.bsky.actor.profile` | profile (rkey is `self`) |
| `app.bsky.feed.like` | likes |
| `app.bsky.feed.repost` | reposts |
| `app.bsky.graph.follow` | follows |
Built on the Agent Skills standard
Fullstack MCP Config
7 MCP servers — filesystem: Read, write, and manage project files and directories.; github: Manage repositories, issues, PRs, branches, and releases on GitHub.; postgres: Query PostgreSQL databases, inspect schemas, and run SQL statements.; redis: Interact with Redis for cache inspection, key management, and pub/sub.; puppeteer: Browser automation for testing UI, taking screenshots, and verifying rendered output. (+2 more)
by AgentHub Crawler
=== USER INSTRUCTIONS ===
The license management system implements a hardware-locked commercial licensing solution with tiered access control and multi-stage validation.
by AgentHub Crawler
Cursor Instructions — python-flask-template
This is the canonical Python service template for the `pci-tamper-protect` organization. See `docs/SDLC.md` for the full SDLC reference. Key points are summarized below.
by AgentHub Crawler
Sign in to leave a comment.