Hourly automations. Current set:
| # | Job | Script | Output | Schedule |
|---|---|---|---|---|
| 1 | Robinhood trending crypto prices | scripts/robinhood_trending_crypto.py |
data/robinhood_trending_crypto/<UTC-stamp>.csv, latest.json, history.jsonl |
every hour |
- Pulls the live tradable list from Robinhood (
nummus.robinhood.com/currency_pairs,tradability == tradable, ~90 coins). - Pulls live Robinhood prices (
api.robinhood.com/marketdata/forex/quotes, bid/ask/mark/open/high/low). - Ranks "trending" = largest absolute % move (mark vs open). Saves a timestamped CSV +
latest.json+ appendedhistory.jsonl.
Stdlib only — no pip install needed.
python scripts/run_all.py
# or single job:
python scripts/robinhood_trending_crypto.py --top 15Small tkinter window showing the top 10 trending coins from latest.json,
auto-refreshing every 5 minutes. Stdlib only.
python scripts/crypto_widget.py # open now
python scripts/crypto_widget.py --check # headless preview, no window
powershell -ExecutionPolicy Bypass -File scripts/Register-WidgetStartup.ps1 # start at loginRemove auto-start: delete CryptoWidget from shell:startup.
git add .; git commit -m "add hourly crypto automation"; git push- Actions workflow
.github/workflows/hourly-automations.ymlruns at :05 UTC hourly and commitsdata/.
powershell -ExecutionPolicy Bypass -File scripts/Register-HourlyTask.ps1This registers scripts/Run-Hourly.ps1, which runs the automations and then
pushes data/ to GitHub — every hour, while this PC is on.
scripts/Push-ToGitHub.ps1 commits data/ only when it changed and pushes
the current branch — never force-pushes. Safe to run by hand any time:
One-time setup (not hourly):
gh auth login
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git add -A; git commit -m "initial commit"
gh repo create OpenAutomations --public --source=. --pushManual push test (safe: does nothing when there is nothing new):
powershell -ExecutionPolicy Bypass -File scripts/Push-ToGitHub.ps1
# to also push script/workflow changes: add -AddAll- Add
scripts/<name>.py(exit 0/1, writes underdata/<name>/). - Register it in
scripts/run_all.pyJOBS. - Both schedulers pick it up automatically.