Expand description
FarHand core: a coding agent’s hands on a remote machine, with the local machine kept closed except for what the user explicitly opens.
config— where the remote is and what the local side may touch.guard— the secret guard every outbound byte passes through.local— the local allowlist.remote— the SSH session and the remote operations.transfer— uploads and downloads across the two.audit— the JSONL record of everything that happened.
Re-exports§
Modules§
- audit
- The audit log: one JSON object per line, one file per day. It records what was asked, where, and how it ended — never file contents and never the text a guard rule matched.
- config
- Configuration: where the remote is, what the local side may touch, and the limits every operation runs under.
- error
- guard
- The secret guard. Nothing leaves this machine for the remote without passing through here: command text, file contents written or edited, and every file an upload would send.
- jobs
- Long-running processes on the remote: a dev server, a watcher, anything
that must outlive one
remote_shellcall. - local
- The local allowlist. The model sees the local filesystem only through
this module, and this module only ever resolves paths inside the
directories the user listed in
local.allowed_dirs. - remote
- Everything that touches the remote host: one multiplexed OpenSSH session, an SFTP channel on top of it, and the operations the tools are built from.
- text
- Text shaping for tool results: bounded output and numbered line windows.
- transfer
- Moving files between the allowlisted local directories and the remote. Uploads go through the secret guard file by file; downloads only ever land inside the allowlist.