toss-push
Push local files to a Toss recipient using natural language. Extracts files, recipient, and optional message from the user's intent.
SKILL.mdskills/toss-push/skill.md
GitHubToss Push
Push one or more local files to a recipient via the Toss CLI.
When to Use
Trigger when the user says things like:
- "push report.md to xiaoming"
- "send these files to #zhangsan"
- "toss this to alice with a note saying check this"
- "push data.csv and notes.md to bob"
- "发给 xiaoming: report.pdf"
Workflow
Step 1: Extract Intent
Parse the user's message to identify:
- Files: file paths or names mentioned (e.g.
report.md,./data/output.csv) - Recipient: alias name or
#github_username - Message: optional note to attach (after "with a note", "saying", "-m", "附言", "备注")
If files are ambiguous (e.g. "this file"), look at the current working directory context or ask the user to clarify.
Step 2: Validate Files Exist
Before running, verify each file path exists:
ls <file_path>
If a file does not exist, report it clearly and stop — do not proceed with a broken path.
Step 3: Run Push
toss push <file1> [file2 ...] <recipient> [-m "message"]
Examples:
# Single file, alias recipient
toss push report.md xiaoming
# Multiple files, GitHub username
toss push data.csv notes.md #zhangsan
# With message
toss push report.pdf alice -m "check this before Monday"
Step 4: Report Result
Show what was pushed:
- File name(s)
- Recipient
- File size(s) from the CLI output
- Any failures with the error detail
Edge Cases
- If the user gives a relative path, run from the current working directory
- If recipient starts with
#, pass it as-is (strip the#); otherwise pass the alias directly - If multiple files fail, report each failure separately and continue with the rest
- If not logged in, suggest running
toss loginfirst
Notes
- The CLI already handles duplicate filenames on the server side
- Supported file types:
.md,.txt,.json,.yaml,.py,.ts,.js,.html,.css,.csv,.pdf,.png,.jpg,.jpeg,.zip— others sent asapplication/octet-stream