I guess I have a really bad mental model of what a 'command' is currently.
Commands are objects that make changes in the db, they are tuned for specific db types and can provide custom features depending on what a given db supports. Repositories can create commands for you, which is done through
Repository#command method. Furthermore, repository changesets use commands too.
The difference between using a command vs changeset is that base commands are simpler than changesets. ie changesets can transform data, update changesets check the diff between original tuple and new data, and also we have conventional usage in update/delete changesets as they restrict relations by the PK.
Commands should be considered as a more advanced API. Even though the built-in base commands (create/update/delete) are fairly simple, you can also have more advanced types, like PG's Upsert. You can also define your own command classes, and use them directly in repos or with custom changesets.