chadtmiller.com/knotless
git that lives in your Atmosphere account
Actions
Everything someone can do with knotless, and where: the knotless
command, the MCP tool, the XRPC method
knotless-serve answers for it, and the web page. The three
surfaces call the same code in the knotless crate, so an action does the
same wherever it is done. "–" marks where one is missing.
The XRPC column names the method the pages ask. The command line and the
tools write most things straight into your own account on your PDS, as
records, and need no method of knotless-serve's for it: a write has one
only once a page makes it. <repo> is a repository's page,
/<owner>/<name>.
Reading
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| an account's repositories | ls | list_repos | getActorRepos, listRepos | profile, Repositories tab; <repo> repository switcher |
| an account's profile and activity | – | – | getProfile, getActorActivity, getFeed | profile, Overview and Activity tabs |
| what the network did | – | – | getFeed | home |
| find accounts by handle | owners | search_owners | searchOwners | /search |
| a repository's summary | refs | refs | getRepo | <repo> |
| branches and tags | refs | refs | listBranches | <repo> branch menu |
| a directory | git | list_tree | getTree, getLastCommits | <repo>/tree/… |
| a file | git | read_file | getFile | <repo>/blob/…, /raw/… |
| search a repository's files | search | search | – | – |
| history | git | log | listCommits | <repo>/commits/… |
| a commit | git | log, diff | getCommit | <repo>/commit/<rev> |
| what one revision changed since another | diff <base> <head> | diff | – | – |
| pulls and issues | list | list_items | listItems | <repo>/pulls, <repo>/issues |
| a pull or issue and its comments | show | show_item | getThread | <repo>/pull/…, <repo>/issue/… |
| the diff a pull would apply | diff <at-uri> | pull_diff | getThread | the pull's page |
| the template a pull or issue follows | template | template | getTemplate | the new pull and new issue pages |
| checks, their logs and pictures | checks | checks | listRuns, getCheck, getCheckImage, listChecks | <repo>/checks, <repo>/check/… |
| the merge queue | queue | merge_queue | getQueue | <repo>/queue |
| runner minutes | minutes | minutes | listRunners | <repo>/settings/actions |
| what a repository takes up on its PDS | storage | storage | – | – |
| members | members | members | – | – |
| protected branches | rules | list_rules | – | – |
| labels | labels | list_labels | – | – |
| triagers | triagers | triagers | – | – |
| runners and agents | runners, agents | runners, agents | – | – |
| an account's stars | stars | list_stars | getActorStars | profile, Stars tab |
| follows and followers | follows, followers | list_follows | getFollows, getFollowers | profile, Following and Followers tabs |
| notifications | notifications | notifications | listNotifications, getUnreadCount, updateSeen | /notifications |
Pulls and issues
"Its page" is the pull's or issue's, <repo>/pull/… or <repo>/issue/….
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| open an issue | issue | open_issue | createIssue | <repo>/issues/new |
| open a pull | pull | open_pull | createPull, getCompare | <repo>/pulls/new |
| comment | comment | comment | createComment | its page |
| review: approve or ask for changes | comment --approve, --changes | comment with verdict | createComment with verdict | the pull's page |
| edit a title, body or comment | edit | edit_item | editItem | its page |
| take back a comment or review | delete-comment | delete_comment | deleteComment | its page |
| close or reopen | close, reopen | set_state | setItemState | its page |
| put labels on or off | label, unlabel | label_item | labelItem | its page |
| hide or show, as owner | hide, unhide | hide_item | hideItem | its page |
| report | report | report | createReport (the pages'), com.atproto.moderation.createReport | its page, Report dialog |
Landing and CI
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| merge a pull now | merge | merge | – | – |
| queue a pull, or take it out | merge --queue, queue --leave | merge with queue, leave_queue | – | – |
| point a pull at other branches | retarget | retarget_pull | – | – |
| run a pull's or a ref's checks again, or one workflow | rerun | rerun | – | – |
| run a workflow at a ref, with variables | rerun --ref --workflow -e | rerun with env | – | – |
| name or drop a runner | runners add, remove | runners | inviteRunner, listRunnerInvites | – |
| name or drop an agent | agents add, remove | agents | – | – |
Repositories
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| create | create | create_repo | createRepo | /new |
| fork | fork | fork | forkRepo | <repo> Fork button |
| rename | rename | rename_repo | – | – |
| delete | delete --yes | delete_repo | – | – |
| offer, withdraw, accept a transfer | transfer, transfer --cancel, accept | transfer_repo, accept_transfer | – | – |
| share, unshare | share, unshare | share, with revoke | – | – |
| protect a branch, or stop | protect, unprotect | protect_branch, with remove | – | – |
| create, delete, rename a branch | branch, --delete, --rename | create_branch, delete_branch, rename_branch | – | – |
| define or remove a label | labels add, remove | define_label, with remove | – | – |
| name or drop a triager | triagers add, remove | triagers | – | – |
| score a triager | triagers eval | eval_triager | – | – |
| commit without a checkout | commit | commit | createCommit (through a gateway) | – |
| push | git | – | pushRefs (through a gateway) | – |
| compact | compact | compact | – | – |
| star, unstar | star, unstar | star | starRepo, unstarRepo | <repo> Star button |
Account
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| log in, log out | login, logout | – | /oauth/login, /oauth/logout | the header |
| switch accounts | – | – | /oauth/switch | the header |
| set a profile | profile | set_profile | – | – |
| claim an email address, or stop | email add, remove | – | – | – |
| follow, unfollow | follow, unfollow | follow | followActor, unfollowActor | profile, Follow button |
| block, unblock | block, unblock | block_account | – | – |
| delegate writes to a gateway | delegate | delegate | putDelegation, getDelegation | – |
Appview admin
For an account the appview's KNOTLESS_ADMIN_DIDS names. The methods
take its service token, or, from the site's own pages, its session there;
getViewer says admin for it.
| Action | CLI | MCP | XRPC | Web |
|---|---|---|---|---|
| take down, or put back | admin takedown, --undo | takedown | com.atproto.admin.updateSubjectStatus | /admin |
| whether something is taken down | admin status | moderation_status | com.atproto.admin.getSubjectStatus | /admin |
| the reports sent | admin reports | list_reports | listReports | /admin |
| how the appview is used | admin stats | stats | getUsage | /admin |
On one surface only
These belong where they are:
loginandlogoutkeep a session on the machine; the MCP tools run as that session, and the pages keep their own.mirrorprints a local cache's path, andstatussays whether a knotless-serve is well, for whoever runs one.- git itself clones, fetches and pushes, through
git-remote-knotless;list_tree,read_fileandlogare how a tool, with no checkout, reads what git reads locally. helpprints the commands.