| name | sf-deploy |
| description | Deploy a StrategyFactory strategy as a copy bot on one of your connected exchanges. Use only after the user has explicitly chosen a strategy (typically via sf-best-pick / sf-market-fit / sf-profit-factor) and named the target exchange and sizing. Dangerous — creates a live bot that places real orders. Always confirm with the user before invoking. |
sf-deploy
Creates a copy bot via POST /api/user-api/bots. The server enforces
exchange ownership, so this is safe in the "wrong-account" sense, but the
bot it creates will trade real money on the named exchange.
When to use
ONLY after:
- The user has picked a strategy (
sf-best-pick, sf-market-fit, sf-profit-factor)
- The user has named the target exchange (
sf-portfolio lists IDs)
- The user has specified sizing (
--position and --amount)
- The user has explicitly said "deploy" / "create the bot" / "go live"
Always echo the chosen strategy + sizing + exchange and confirm before
running this skill.
How to run
# Fixed leverage
python sf-deploy/deploy.py \
--strategy SLUG_OR_ID \
--exchange EXCHANGE_ID \
--position percentage \
--amount 3 \
--leverage 10 \
[--name "Best Pick #1"] \
[--dry-run] [--json]
# Dynamic leverage
python sf-deploy/deploy.py \
--strategy SLUG_OR_ID \
--exchange EXCHANGE_ID \
--position usdt \
--amount 100 \
--dynamic-leverage \
[--name "..."] [--dry-run] [--json]
Inputs
--strategy: id or slug. Get it from sf-best-pick or any list skill.
--exchange: exchange id from sf-portfolio (NOT the venue name).
--position: percentage (of wallet) or usdt (fixed dollar amount).
--amount: positive number. Percent if --position percentage, USDT
if --position usdt.
--leverage OR --dynamic-leverage: pick one.
--name: optional bot display name.
Safety
--dry-run prints exactly what would be POSTed and exits without
calling the API.
- The API is rate-limited to 120 requests/minute per user; the shared
client throttles to stay well under.
- This skill does NOT preview the strategy's metrics. The agent should
echo them from
sf-best-pick / sf-edge-watch before calling deploy.