Tesserae
e‑ink 디스플레이용 무료 오픈소스 대시보드 서버, 브라우저에서 대시보드 구성·프레임 렌더링·MQTT·REST 전송, 자체 호스팅·추적 없음
VSSH는 기본 OpenSSH 동작을 유지하고 사전 점검 가드레일·안정적 JSON·프라이버시 감사 메타데이터를 추가
VSSH keeps native OpenSSH behavior and adds preflight guardrails, one stable JSON result, privacy-safe audit metadata, connection reuse, and file transfer for agents and automation.
개발 도구TypeScriptGitHub @light-merlin-dark온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Guarded remote execution and file transfer for scripts and agents, built on native OpenSSH.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗VSSH turns native OpenSSH into a predictable automation contract.
OpenSSH already solves secure remote access. VSSH keeps its transport,
authentication, host verification, configuration, and command language intact,
then adds the operational guarantees that scripts and agents otherwise have to
rebuild around every ssh and scp call.
| Capability | SSH / SCP | VSSH |
|---|---|---|
| Secure transport | Native OpenSSH authentication, encryption, host verification, known_hosts, and SSH-agent behavior | Uses that same native OpenSSH path; VSSH does not replace or emulate SSH |
| Remote commands | Runs familiar shell, Linux, Docker, and systemd commands | Runs the same commands with no VSSH-specific remote language |
| Target selection | Repeat connection flags or maintain an OpenSSH host alias | Save one default target, then override host, user, identity, or port per call |
| Terminal behavior | Streams stdin, stdout, and stderr; supports TTYs and returns the remote exit code | Preserves streaming, stdin, TTY, signals, and the remote exit code in raw mode |
| Automation output | Build and maintain wrappers to separate streams, time execution, detect timeout, and serialize a result | --json emits one bounded object with stdout, stderr, exit code, duration, timeout state, and signal when applicable |
| Catastrophic-command guardrails | Sends the command as written | Blocks recognizable root deletion, direct disk writes, destructive volume cleanup, firewall flushes, and shutdown patterns before connecting |
| File transfer with permissions | Coordinate scp with a separate ssh chmod call and reconcile failures | upload --mode <octal> performs both as one reported operation and fails if either phase fails |
| Connection diagnosis | Check binaries, configuration, identity, and reachability separately | vssh doctor verifies the complete path, including a real connection |
| Audit trail | Add shell history or custom logging, often capturing sensitive command content | Writes owner-only outcome metadata and a command hash; never command text, output, credentials, or file contents |
| Repeated-call latency | Configure OpenSSH multiplexing yourself | Reuses a short-lived OpenSSH control connection when possible |
| Agent discovery | Parse help text and infer aliases or argument shapes | commands --json exposes a versioned, machine-readable command contract |
That is the product boundary: familiar SSH security and commands underneath; a consistent remote-operations contract above them.
If you know SSH, you already know the command model:
# OpenSSH
ssh deploy@prod 'systemctl is-active api'
# VSSH after one-time setup
vssh 'systemctl is-active api'
The quoted text is not a VSSH-specific language. It is the same remote shell
command you would give to ssh: Linux, Docker, systemd, and shell commands all
remain unchanged.
Use plain ssh for an interactive session or an isolated one-off. Use VSSH when
a script or agent needs to repeat remote work with predictable results,
diagnostics, transfers, guardrails, and privacy-safe evidence. The guardrails
are not a sandbox or authorization boundary.
npm install -g @light-merlin-dark/vssh
vssh --setup # save the host, user, identity, and port
vssh doctor # verify the complete connection path
vssh uptime # run uptime on the configured remote host
vssh --json 'systemctl is-active api'
vssh upload --mode 600 ./app.env /etc/app/app.env
Configuration is stored at ~/.vssh/config.json with owner-only permissions.
vssh '<remote command>' # run through native ssh
vssh --json '<remote command>' # capture one structured result
vssh upload <local> <remote> # send through native scp
vssh download <remote> <local> # retrieve through native scp
vssh doctor # diagnose setup and connectivity
docker, systemctl, journalctl, find, and similar names in the examples
below are programs on the remote machine—not VSSH subcommands.
ssh and scpssh-agent, or a working OpenSSH host aliasWindows is not currently supported.
Start with vssh doctor for a readable diagnosis or vssh doctor --json for
automation. It checks that ssh and scp exist, the configuration and identity
path are usable, and the target accepts a real connection.
VSSH preserves native failure behavior instead of hiding it:
success: false, exitCode,
stdout, and stderr.timedOut: true in JSON mode.Pass one quoted shell command when it contains pipes, redirects, variables, or other shell syntax:
vssh uptime
vssh 'df -h / && free -h'
vssh 'docker ps --format "{{.Names}}\t{{.Status}}"'
vssh -c 'journalctl -u api --since "10 minutes ago" | tail -100'
Multiple ordinary arguments are shell-quoted before execution:
vssh printf %s 'hello world'
Use -- if a command name conflicts with a VSSH command:
vssh -- commands
Raw mode is the default. It connects the remote process directly to the terminal or pipeline:
printf 'uptime\n' | vssh 'bash -s'
vssh 'docker logs -f api --tail 50'
vssh --tty 'sudo systemctl status api'
VSSH returns the remote process exit code. A timed-out command returns 124.
--json captures output and writes exactly one JSON object:
vssh --json --timeout 30 'systemctl is-active api'
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗