Files
sic/SKILL.md
T
Markus Fritsche 99568666d3 Drop quotesu/ setup doc; make the demo take any sicd host as an argument
The quotesu setup notes exposed internal host details and aren't useful to
readers, so remove the directory. The quoting-hell demo now requires the
target host as an argument (any host running sicd) instead of defaulting to
an internal name, and its labels say sic rather than the old rs. Example
hostnames in the README/SKILL/main.go are now the neutral placeholder host1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EWpfhDgYNA21tETDP9ueBE
2026-07-19 16:03:42 +02:00

48 lines
1.5 KiB
Markdown

---
name: sic
description: Run a command on a remote host without shell quoting bugs. Lighter than a per-host MCP server.
---
# sic — remote command execution
`sic <host> <command> [arg ...]` runs the command on `<host>`. Arguments go to
`sicd` on the host as netstrings and are passed to `execvp` directly, so no
shell re-parses them. `ssh host touch 'a b'` makes two files; `sic host touch
'a b'` makes one file named `a b`.
## Usage
```
sic <host> <command> [arg ...] # exec mode (default)
sic --sh <host> '<shell string>' # sh -c on the host
sic <host> -- <command> [arg ...] # explicit separator if host/command starts with --
```
Pass each argument as a separate argument to `sic`. Do not construct netstrings;
`sic` frames them.
```
sic host1 echo hello world
sic host1 touch 'my file.txt'
sic host1 echo '$HOME' # literal, no expansion
sic host1 python3 -c 'import sys; print(sys.argv)' a 'b c'
sic --sh host1 'grep foo *.log | wc -l'
```
## exec vs --sh
- Default (exec): a program with arguments. Quoting cannot break, but there are
no pipes, redirects, or globs.
- `--sh`: use only when you need a pipe, redirect, or glob. The single string is
parsed by `sh -c` on the host.
## Deploy sicd to a new host
```
scp gateway/sicd <host>:/tmp/sicd # Python reference; or bin/sicd (Go)
sic --sh <host> 'sudo install -m755 /tmp/sicd /usr/local/bin/sicd'
sic <host> id # verify
```
For long-running commands, use the background skill (`SKILL-bg.md`).