Tools
Rediacc ships four tools for day-to-day work on your machines and repositories: file sync over SSH, an SSH terminal, VS Code integration, and CLI self-updates. All four run over SSH. No agent or daemon required on the remote side. If you need a GUI for any of this, you are looking at the wrong page.
File Synchronization (sync)
Transfer files between your workstation and a remote repository using rsync over SSH.
Upload Files
--local accepts one or more paths. Each path may be a file or a directory. Files land at <remote>/<basename>; directory contents merge into <remote>/. For a single file, prefer --remote-file to give the file its destination path explicitly.
# Directory (contents merged into remote)
rdc repo sync upload my-app --local ./src --remote /app/src
# Single file dropped into a remote directory (basename preserved)
rdc repo sync upload my-app --local ./config.yml --remote /app/conf
# Single file, explicit destination path
rdc repo sync upload my-app --local ./config.yml --remote-file /app/conf/config.yml
# Multiple sources in one call
rdc repo sync upload my-app --local a.yml b.yml ./assets --remote /app
--remote and --remote-file are mutually exclusive. --remote-file requires exactly one --local path that points at a file.
--mirror cannot be combined with a file source; it would delete sibling files in the remote directory.
Download Files
Use --remote for a directory (the default) or --remote-file for a single file. The two flags are mutually exclusive.
# Directory
rdc repo sync download my-app --remote /app/data --local ./data
# Single file: --local must be an existing directory
rdc repo sync download my-app --remote-file /app/conf/config.yml --local ./local-conf
Check Sync Status
rdc repo sync status my-app
Options
| Option | Description |
|---|---|
-m, --machine <name> | Target machine |
<ref> (positional) | Target repository ref: name, name:tag, optionally @machine |
--local <paths...> | One or more local file or directory paths (upload) or local destination directory (download) |
--remote <path> | Remote directory (relative to repository mount) |
--remote-file <path> | Remote file path for single-file uploads or downloads (alternative to --remote) |
--dry-run | Preview changes without transferring |
--mirror | Mirror source to destination, delete extra files (directory sources only) |
--verify | Verify checksums after transfer |
--confirm | Interactive confirmation with detail view |
--exclude <patterns...> | Exclude file patterns |
--skip-router-restart | Skip restarting the route server after the operation |
SSH Terminal (term)
Open an interactive SSH session to a machine or into a repository’s environment.
Shorthand Syntax
The fastest way to connect:
rdc term connect server-1 # Connect to a machine
rdc term connect my-app # Connect to a repository
Run a Command
Execute a command without opening an interactive session:
rdc term connect server-1 -c "uptime"
rdc term connect my-app -c "docker ps"
When connecting to a repository, DOCKER_HOST is automatically set to the repository’s isolated Docker socket, so docker ps shows only that repository’s containers.
Connect Subcommand
Or use the connect subcommand for the same result, with explicit flags:
rdc term connect server-1
rdc term connect my-app
Container Actions
Container work has its own commands: repo logs for logs and repo exec for a command or a shell. Both take the repository ref and name the container with -c.
# Open a shell inside a container
rdc repo exec my-app -c <container> -i -- bash
# View container logs
rdc repo logs my-app -c <container>
# Follow logs in real-time
rdc repo logs my-app -c <container> --follow
# Execute a command in a container
rdc repo exec my-app -c <container> -- ls -la
| Option | Command | Description |
|---|---|---|
-c, --container <name> | both | Target container within the repository |
--lines <n> | repo logs | Number of log lines to show |
-f, --follow | repo logs | Follow logs continuously |
--timestamps | repo logs | Prefix each line with a timestamp |
-i, --interactive | repo exec | Keep stdin open (needed for a shell) |
-u, --user <user> | repo exec | Run as a specific user |
There is no dedicated stats command. For container state across a machine, use machine status:
rdc machine status server-1 --containers
VS Code Integration (vscode)
Open a remote SSH session in VS Code, pre-configured with the correct SSH settings.
Connect to a Repository
rdc vscode connect my-app
This command:
- Detects your VS Code installation
- Configures the SSH connection in
~/.ssh/config - Persists the SSH key for the session
- Opens VS Code with a Remote SSH connection to the repository path
List Configured Connections
rdc vscode list
Clean Up Connections
rdc vscode cleanup
Removes VS Code SSH configurations that are no longer needed.
Check Configuration
rdc vscode check
Verifies VS Code installation, Remote SSH extension, and active connections.
Prerequisite: Install the Remote - SSH extension in VS Code.
VS Code in the Browser
No local VS Code? Serve the editor from inside the repository sandbox and open it in any browser:
rdc vscode connect my-app --browser
This command:
- Installs the open-source editor server on the machine once (read-only shared path, checksum-verified)
- Starts it inside the repository sandbox, so the file tree, the integrated terminal, and every child process see exactly what the repository sees
- Opens an SSH tunnel to a local port and launches your browser with a per-session token URL
The server keeps running after you close the tunnel; reconnecting reuses it. Manage it with:
rdc vscode serve status my-app
rdc vscode serve stop my-app
| Option | Description |
|---|---|
--no-open | Print the URL instead of launching the browser |
--url-only | Print exactly one URL line on stdout (for scripting) and hold the tunnel |
--local <port> | Pick the local tunnel port |
--server-provider <id> | Editor server implementation: openvscode (default) or code-server |
--server-archive <file> | Install from a pre-staged tarball on the machine (no internet needed) |
Works from Linux, macOS, Windows, or a tablet. The only local requirement is a browser.
CLI Updates (update)
Keep the rdc CLI up to date.
Check for Updates
rdc update --check-only
Apply Update
rdc update
Updates are downloaded and applied in-place. The CLI automatically picks the right binary for your platform (Linux, macOS, or Windows). The new version takes effect on the next run.
Rollback
rdc update --rollback
Reverts to the previously installed version. Only available after an update has been applied.
Update Status
rdc update --status
Shows current version, update channel, and auto-update configuration.
Release Channels
rdc update --channel edge # Continuously deployed production updates
rdc update --channel stable # Promoted from edge after 7-day soak (default)
rdc update --status # Show current channel and version info