Initial commit: Hermes Agent skills collection

- Trading skills (OKX, dividend, lottery, quantitative)
- Creative skills (ASCII art, diagrams, video)
- Development skills (GitHub, debugging, TDD)
- Research skills (arXiv, blog monitoring)
- Productivity skills (email, documents, notes)
- MCP integration skills
- Custom user skills
This commit is contained in:
Hermes Skills Manager
2026-07-05 02:31:15 -04:00
commit 6770bc9b9d
908 changed files with 239614 additions and 0 deletions
@@ -0,0 +1,44 @@
# LongPort Python SDK via execute_code — reliable pattern
# Use this instead of terminal + source ~/.bashrc for Python SDK calls.
# The execute_code sandbox inherits LONGPORT_* env vars, so Config.from_env() works.
#
# Pitfalls:
# - execute_code sandbox does NOT inherit bashrc; LONGPORT_* must already be in
# the host env (they are, from ~/.bashrc on this system).
# - If Config.from_env() throws "missing environment variable", the sandbox
# couldn't find the var. Fall back to reading from bashrc via subprocess.
# - Decimal fields (market_cap, last_done, etc.) need float() conversion.
# - candlesticks() returns list sorted oldest-first; [-1] is latest.
# - adjust_type is required for candlesticks: use openapi.AdjustType.NoAdjust
# for raw data or openapi.AdjustType.ForwardAdjust for adjusted.
import os
# Safety net: if LONGPORT_* not in sandbox env, load from bashrc
if not os.environ.get("LONGPORT_APP_KEY"):
import subprocess
result = subprocess.run(
["bash", "-c", "source ~/.bashrc && env"],
capture_output=True, text=True
)
for line in result.stdout.split("\n"):
if "=" in line and "LONGPORT_" in line:
key, val = line.split("=", 1)
os.environ[key] = val
from longport import openapi
config = openapi.Config.from_env()
ctx = openapi.QuoteContext(config=config)
# --- Quote ---
resp = ctx.quote(["AAPL.US"])
q = resp[0]
print(f"Latest: {float(q.last_done)}, Open: {float(q.open)}, High: {float(q.high)}, Low: {float(q.low)}")
# --- Candlesticks (daily, 30 bars) ---
candles = ctx.candlesticks("AAPL.US", openapi.Period.Day, 30, openapi.AdjustType.NoAdjust)
first_close = float(candles[0].close)
last_close = float(candles[-1].close)
change_pct = (last_close - first_close) / first_close * 100
print(f"30d change: {first_close} -> {last_close} ({change_pct:+.2f}%)")