Commands
The client commands talk to a Core this machine can reach — the one on this box, or one you paired. They work the same on metal, in the Core image, and on a laptop that has no Core of its own.
Which Core a command means, in this order: --core <name>, then the current pointer (actana core use), which a Core installed on this machine is pointed at automatically. --json is machine-readable output; every list command has it. --verbose explains steps on stderr and never prints a credential.
core
actana core pair NAME core.example:8443 ABCD-2345 --session <id> --fingerprint AA:BB:…
actana core ls --json
actana core use laptop
actana core status
actana core shell
actana core exec -- df -h /
actana core exec --cwd /srv/app -- git pull
core pair is the enrollment gesture — usually pasted straight from the handout actana pair new prints on the Core, NAME swapped for what this machine should call it. The CA fingerprint is checked before the code is sent, and there is no actana core add. Full reference: Actana CLI Pairing.
core exec is the non-interactive half of core shell. It returns the command's real exit code, keeps stdout and stderr apart, and takes --cwd on the Core's machine. A dropped link mid-command exits 125 and says the command's fate is unknown — never 0, and never the command's own status.
project
actana project ls
actana project add api /srv/work/api
actana project files api
actana project cp ./dist api:build
actana project cp api:build ./dist
add takes an absolute path on the Core, sent as typed. cp is the scp shape: one side is <project>:<path>, the other is local. A folder crosses as one archive and keeps permissions.
harness
actana harness ls
actana harness install opencode
actana harness skills
ls and install ask a Core. skills writes files on this machine and dials nothing. See Skills.
events
actana events tail
actana events tail --json --kind session:finished
Follows that Core's event log. A first run with no cursor starts at the end, like tail -f.
session
actana session start api "fix CI"
actana session ls
actana session logs <id>
actana session resume <id> "continue"
actana session attach <id>
actana session send <id> "yes" --enter
actana session kill <id>
start prints the session id and exits; the Harness keeps running on the Core. attach is the one verb that is a terminal. kill, send, and logs work on any session on that Core, including ones the Panel started.