
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
remote-bridge-cli
Advanced tools
Bridge the gap between AI-generated code and remote servers.
RemoteBridge is a high-performance CLI tool written in Rust that acts as a stateful proxy between your local AI coding environment (Claude Code, Gemini CLI, Aider, etc.) and your remote infrastructure. It parses Markdown output from AI tools, syncs file changes via rsync, executes remote commands over SSH, and pipes logs back to your terminal — so the AI can "see" remote errors and fix them.
Once installed, you don't run commands manually. You just tell your AI what you want — in plain English — and RemoteBridge handles it.
You: "Sync my project files to the staging server"
You: "Run npm install on the remote server"
You: "Deploy my latest changes to ubuntu@your-server.com"
You: "Check what OS and runtimes are installed on the server"
You: "Tail the remote logs and show me what's failing"
You: "Something broke after deploy — fetch the logs and fix it"
You: "Push my code and restart the app"
Your AI calls the right tool, syncs the right files, runs the right commands — and if something fails, it reads the remote logs and fixes the code automatically.
No manual SSH. No piping. No copy-pasting errors.
The Problem: AI coding tools operate locally. Developers without CI/CD must manually FTP files and SSH into servers to test changes. The AI never sees remote runtime errors, creating a "context gap."
The Solution: RemoteBridge automates the Sync → Run → Feedback loop. It parses AI output, applies file changes locally, syncs them to a remote target, runs commands, and tails remote logs if something fails.
| Feature | Description |
|---|---|
| Markdown Interception | Extracts ```bash and ```lang filename blocks from STDIN automatically |
| Shadow Syncing | Ultra-fast delta-based file transfer via rsync over SSH |
--dry-run | Preview exactly what rsync would transfer before touching anything |
| Watch Mode | Polls local files and auto-syncs on any change — live deploy loop |
| Full Deploy Pipeline | One command: sync → restart → tail logs on failure |
| Permission Gate | Pauses for confirmation on sudo, rm, or database commands |
| Pre-flight Check | Detects remote OS, Node.js, Python, Rust, Docker versions |
| Log Backfeed | Auto-tails remote logs when a command fails — AI reads and fixes |
| MCP Server | Native Model Context Protocol server for Claude Desktop & other AI IDEs |
| SSH Key + Port | Per-target SSH identity file and custom port support |
Prerequisites: Rust (rustup.rs), rsync, ssh in PATH
npm install -g remote-bridge-cli
Builds a native binary optimized for your machine.
# Claude Code (available in every project automatically)
claude mcp add remote-bridge --scope user -- remote-bridge mcp
For other tools see the MCP configuration section below.
Run this once per project:
remote-bridge init --name my-app -H your-server.com --user ubuntu --path /var/www/app
That's it. Now open your AI and just talk to it.
git clone https://github.com/varaprasadreddy9676/remote-bridge.git
cd remote-bridge
cargo build --release
cp target/release/remote-bridge /usr/local/bin/
remotebridge.yaml)Initialize a project:
remote-bridge init --name my-app -H 13.234.xx.xx --user ubuntu --path /var/www/html/app
This creates a remotebridge.yaml:
project_name: "my-app"
targets:
staging:
host: "13.234.xx.xx"
user: "ubuntu"
remote_path: "/var/www/html/app"
port: 22 # optional, default: 22
ssh_key: "~/.ssh/id_rsa" # optional, uses default SSH key if omitted
restart_cmd: "pm2 restart app" # optional, used by restart & deploy commands
logs:
- "/var/www/html/app/logs/error.log"
- "/var/log/nginx/error.log"
require_confirmation: false # set true to confirm every command
exclude: # extra rsync exclusions beyond .gitignore
- "node_modules/"
- "*.log"
production:
host: "prod.example.com"
user: "ubuntu"
remote_path: "/opt/app"
ssh_key: "~/keys/prod.pem"
restart_cmd: "systemctl restart myapp"
logs:
- "/opt/app/logs/error.log"
require_confirmation: true
| Command | Description |
|---|---|
init | Create a new remotebridge.yaml config |
preflight | Check remote OS, Node.js, Python, Rust, Docker versions |
sync | Sync local files to the remote server |
sync --dry-run | Preview what would be synced without transferring anything |
run <cmd> | Execute a single command on the remote server |
apply | (Core) Parse STDIN Markdown and apply file changes + commands |
| Command | Description |
|---|---|
restart | Restart the remote service using restart_cmd from config |
deploy | Full pipeline: sync → restart → tail logs on failure |
deploy --follow | Same as above, then tail -f logs after success |
| Command | Description |
|---|---|
logs | Fetch the last 50 lines from configured log files |
logs -n 200 | Fetch the last 200 lines |
logs --follow | Stream logs live (tail -f) |
| Command | Description |
|---|---|
watch | Poll local files every 2s, auto-sync on change |
watch --interval 5 | Custom polling interval in seconds |
RemoteBridge is pipe-friendly. Pipe any AI tool's output directly into remote-bridge apply.
claude "Fix the database connection in src/db.ts and restart the app" --non-interactive \
| remote-bridge apply --target staging
gemini "Add rate limiting to the Express API" \
| remote-bridge apply --target staging
aider --message "Refactor the login logic" --apply \
| remote-bridge apply --target staging
# 1. Start watching in one terminal — changes sync automatically
remote-bridge watch --target staging
# 2. Run AI in another terminal
claude "Optimize the database queries in src/db.ts"
# 3. Deploy when ready
remote-bridge deploy --target staging --follow
RemoteBridge is a native Model Context Protocol (MCP) server. Any MCP-compatible AI IDE can use it as a tool directly — no piping required. The config is almost identical across all tools.
| Tool | Description |
|---|---|
sync_to_remote | Push local code to the remote server |
run_remote_command | Execute any shell command on the remote host |
preflight_check | Check remote OS and runtime versions |
fetch_logs | Retrieve recent log lines |
restart_service | Restart the configured remote service |
deploy | Full sync + restart + log-tail pipeline |
File: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"remote-bridge": {
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
File: ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project)
{
"mcpServers": {
"remote-bridge": {
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
Or go to Cursor Settings → MCP → Add Server.
File: .vscode/mcp.json in your project root
{
"servers": {
"remote-bridge": {
"type": "stdio",
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
For the Cline extension, add via the Cline sidebar → MCP Servers → Configure.
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"remote-bridge": {
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
Or go to Windsurf Settings → Cascade → MCP Servers → Add.
File: ~/.config/zed/settings.json
{
"context_servers": {
"remote-bridge": {
"command": {
"path": "remote-bridge",
"args": ["mcp"]
}
}
}
}
File: ~/.codex/config.json
{
"mcpServers": {
"remote-bridge": {
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
Or pass inline: codex --mcp-server "remote-bridge mcp" "Deploy my changes"
File: ~/.continue/config.json
{
"mcpServers": [
{
"name": "remote-bridge",
"command": "remote-bridge",
"args": ["mcp"]
}
]
}
File: .claude/mcp.json in your project, or ~/.claude/mcp.json globally
{
"mcpServers": {
"remote-bridge": {
"command": "remote-bridge",
"args": ["mcp"]
}
}
}
Or add via CLI: claude mcp add remote-bridge -- remote-bridge mcp
The pattern is always the same — stdio transport, command remote-bridge, arg mcp:
{
"command": "remote-bridge",
"args": ["mcp"],
"transport": "stdio"
}
Once configured, you just talk to your AI naturally inside Claude Code, Cursor, Windsurf, or any MCP-enabled IDE:
You: "Sync my project files to the staging server"
RemoteBridge calls
sync_to_remote→ rsync transfers only changed files
You: "Run npm install on the remote server"
RemoteBridge calls
run_remote_commandwithnpm install→ streams output back
You: "Deploy my latest changes to ubuntu@your-server.com"
RemoteBridge calls
deploy→ syncs files, restarts service, tails logs if it fails
You: "Check what OS and runtimes are installed on the server"
RemoteBridge calls
preflight_check→ returns Ubuntu version, Node, Python, Docker
You: "Tail the remote logs and show me what's failing"
RemoteBridge calls
fetch_logs→ AI reads the error and fixes your code
You: "Something broke after deploy — fetch the logs and fix it"
RemoteBridge fetches logs → AI sees the stack trace → writes the fix → deploys again
The AI decides which tool to call. You just describe what you want.
RemoteBridge uses your existing SSH key authentication — no passwords stored.
Copy your SSH key to the server:
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@your-server.com
Use a specific key or non-standard port in config:
targets:
staging:
host: "13.234.xx.xx"
user: "ubuntu"
port: 2222
ssh_key: "~/keys/staging.pem"
Or use ~/.ssh/config for aliases:
Host staging-server
HostName 13.234.xx.xx
User ubuntu
IdentityFile ~/keys/my-key.pem
Port 22
Then in remotebridge.yaml:
host: "staging-server"
user: "ubuntu"
sudo, rm, drop, delete, or databaserequire_confirmation: true in config forces confirmation for every command--dry-run on sync shows a diff without touching filesContributions, issues, and feature requests are welcome at GitHub Issues.
MIT License.
FAQs
Bridge the gap between AI-generated code and remote servers
The npm package remote-bridge-cli receives a total of 21 weekly downloads. As such, remote-bridge-cli popularity was classified as not popular.
We found that remote-bridge-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.