Agent skill
cli
Use the pdsx CLI for ATProto record operations. Requires auth for writes, supports batch operations via stdin.
Install this agent skill to your Project
npx add-skill https://github.com/zzstoatzz/pdsx/tree/main/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:
# 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
# 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:
# 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:
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 |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
bsky
Use this when working with BlueSky - fetching threads, reading posts, creating content. Shows you how to use pdsx MCP tools for the task.
git-guardrails-claude-code
Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
handoff
Compact the current conversation into a handoff document for another agent to pick up.
setup-pre-commit
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
scaffold-exercises
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
Didn't find tool you were looking for?