Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
marketcalls avatar

Algo Host

  • 15 installs
  • 7 repo stars
  • Updated April 28, 2026
  • marketcalls/openalgo-execution-skills

Helps with ai & agent building tasks.

About

algo-host is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • algo-host
  • AI & Agent Building
  • AI-coding skill

Algo Host by the numbers

  • 15 all-time installs (skills.sh)
  • +3 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #11,187 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/marketcalls/openalgo-execution-skills --skill algo-host

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs15
repo stars7
Last updatedApril 28, 2026
Repositorymarketcalls/openalgo-execution-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Prepare a strategy for upload to OpenAlgo's /python strategy host.

Arguments

  • $0 = strategy name (e.g. ema_crossover_SBIN) OR full path to a .py file
  • Special: --list lists deployable strategies in strategies/ and their validation status

If $0 is a folder name, the file is strategies/<name>/strategy.py. If it's already a path, use as-is.

Instructions

1. Read algo-expert/rules/self-hosted-strategies.md. 2. Read the strategy file. 3. Validate these criteria (each can be inferred via grep):

CheckWhat to look for
SIGTERM handlersignal.signal(signal.SIGTERM, ...) present
SIGINT handlersignal.signal(signal.SIGINT, ...) present
stop_event usedthreading.Event() and stop_event.set()
HOST_SERVER priorityos.getenv("HOST_SERVER") or os.getenv("OPENALGO_HOST", pattern
Reads STRATEGY_EXCHANGEos.getenv("OPENALGO_STRATEGY_EXCHANGE", pattern
stdout loggingstream=sys.stdout in basicConfig; no FileHandler calls
Strategy entry guardif __name__ == "__main__":
Mode dispatcher--mode argparse with default=os.getenv("MODE", "live")
No hardcoded local paths/home/, C:\\Users, /Users/ not present
Env tag for STRATEGY_NAMEos.getenv("STRATEGY_NAME", pattern

4. Print a validation report:

   Validation: strategies/ema_crossover_SBIN/strategy.py
     [PASS]  SIGTERM handler installed (line 327)
     [PASS]  HOST_SERVER priority correct
     [PASS]  Reads OPENALGO_STRATEGY_EXCHANGE
     [PASS]  stdout-only logging
     [PASS]  Mode dispatcher honors env MODE
     [WARN]  No state.db persistence detected (optional)
     [PASS]  No hardcoded local paths
     ALL REQUIRED CHECKS PASSED

5. Generate `HOST_UPLOAD.md` in the same folder with the exact form values to enter at http://localhost:5000/python:

# Upload Guide: <strategy_name>

## On http://localhost:5000/python

### Step 1: Click "Add Strategy"

| Form field | Value |
|---|---|
| Name | <strategy_name> |
| File | <full path to strategy.py> |
| Exchange | <SYMBOL's exchange, e.g. NSE> |

### Step 2: Parameters (key=value, one per row)

| Key | Value | Purpose |
|---|---|---|
| MODE | live | live execution (sandbox/real per UI analyzer toggle) |
| SYMBOL | <SYMBOL> | trading symbol |
| INTERVAL | <INTERVAL> | bar interval |
| LOG_LEVEL | INFO | logging verbosity |

### Step 3: Schedule

| Field | Value |
|---|---|
| Start time | 09:15 IST |
| Stop time | 15:30 IST (or leave empty for indefinite) |
| Days | Mon, Tue, Wed, Thu, Fri (weekdays for NSE) |

For MCX strategies use `EXCHANGE=MCX` and start time `17:00`.
For CRYPTO use `EXCHANGE=CRYPTO` and check all 7 days.

### Step 4: Click Upload, then Start

The host launches the strategy in a subprocess. Logs go to `openalgo/logs/strategies/<id>_<timestamp>.log`.

To stop the strategy gracefully, click Stop in the UI - the host sends SIGTERM and waits up to 15s for clean shutdown.

## Notes

- Live vs sandbox is decided by OpenAlgo UI's analyzer toggle, not by this strategy
- Re-upload anytime; the host preserves STRATEGY_ID
- The exchange you pick drives the calendar gating; intersect with start-stop

6. If --list, list strategies/ subfolders, validate each, print a summary table.

When validation FAILs

Print the specific lines that need fixing:

[FAIL] HOST_SERVER priority: line 38 reads OPENALGO_HOST first.
       Change:
           API_HOST = os.getenv("OPENALGO_HOST", "http://127.0.0.1:5000")
       To:
           API_HOST = os.getenv("HOST_SERVER") or os.getenv("OPENALGO_HOST", "http://127.0.0.1:5000")

Offer to make the fix automatically (use Edit tool).

Reset state

If the user asks to reset a strategy's persistent state before re-upload, suggest:

rm strategies/<name>/state.db

Or, if no state.db exists, no action needed.

Avoid

  • Do not auto-upload via API - the /python page is a UI form, not an API endpoint
  • Do not modify the strategy's logic, only the host-compatibility plumbing
  • Do not use icons/emojis

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.