-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the sftp-cc-toomaster wiki!
A universal SFTP upload tool for Claude Code. Supports incremental upload, automatic private key binding, and permission correction.
Zero external dependencies — pure shell implementation, only requires system-built-in sftp, git, grep, sed.
Deploy Code to Server with One Sentence — Claude Code SFTP Plugin
Ever wished you could just tell Claude "sync code to server" and have it done? Now you can.
The Problem
If you've used PhpStorm before, you know how nice it is — every file change gets auto-synced to your dev server via SFTP. But after switching to Claude Code, that workflow breaks. Claude edits your code locally, and you're stuck manually pulling changes on the server. Over and over.
The Solution
sftp-cc-toomaster — a Claude Code skill that lets you deploy code with natural language:
"sync code to server"
That's it. One sentence. Claude handles the rest.
Setup (2 minutes)
Step 1: Install
Option A: Plugin Marketplace (Recommended) /plugin marketplace add https://github.com/toohamster/sftp-cc-toomaster /plugin install sftp-cc-toomaster@sftp-cc-toomaster
Option B: Manual Install git clone https://github.com/toohamster/sftp-cc-toomaster.git bash sftp-cc-toomaster/install.sh /path/to/your-project
Step 2: Configure your server
bash .claude/skills/sftp-cc-toomaster/scripts/sftp-init.sh
--host your-server.com
--username deploy
--remote-path /var/www/html
Step 3: Drop your SSH key cp ~/.ssh/id_rsa .claude/sftp-cc/ Permissions are auto-corrected to 600. No extra config needed.
Done! Now open Claude Code and try it out.
How to Use
Just talk to Claude naturally:
┌────────────────────────────────────────┬─────────────────────────────────────────┐ │ What you say │ What happens │ ├────────────────────────────────────────┼─────────────────────────────────────────┤ │ "sync code to server" │ Incremental upload (only changed files) │ ├────────────────────────────────────────┼─────────────────────────────────────────┤ │ "upload all files to server" │ Full upload │ ├────────────────────────────────────────┼─────────────────────────────────────────┤ │ "upload src/ to server" │ Upload specific directory │ ├────────────────────────────────────────┼─────────────────────────────────────────┤ │ "deploy code and delete removed files" │ Incremental + remote delete │ └────────────────────────────────────────┴─────────────────────────────────────────┘
How Incremental Upload Works
First run: uploads everything, saves git commit hash Next runs: git diff → only uploads changed/new files
It detects:
- Committed changes since last upload
- Staged but uncommitted changes
- Unstaged modifications
- Brand new untracked files
No wasted time re-uploading unchanged files.
What Makes It Different
- Zero dependencies — pure shell, no jq/python/node needed
- Private key auto-binding — just drop the key file, it configures itself
- Safe by default — remote files are NOT deleted unless you explicitly use --delete
- Works on macOS & Linux — bash 3+ compatible
Links
GitHub: https://github.com/toohamster/sftp-cc-toomaster License: MIT
Questions? Happy to help!