OpenClaw/clawhub-security-signals huggingface dataset:
Skill: atmosphere16happy/baby-photo-book (version 1.0.0)

--- name: baby-photo-book description: Generate professional baby photo books from photos with intelligent layout. Automatically organizes photos by baby's age stages, applies smart layouts to minimize whitespace, and outputs print-ready PDF. Use when user wants to create baby photo albums, generate photo books from baby pictures, or automatically layout photos for printing. --- # Baby Photo Book Generator Generate professional baby photo books with intelligent layout optimization. ## Features - **Automatic Age Grouping**: Organizes photos by baby's growth stages (newborn, infant, toddler) - **Smart Layout**: Minimizes whitespace while preserving photo aspect ratios - **Multiple Layout Patterns**: Supports 1-4 photos per page with optimal arrangements - **Print-Ready Output**: Generates A4 PDF suitable for professional printing ## Usage ### Basic Usage ```bash python scripts/generate_photo_book.py <photo_folder> --name "Baby Name" --birth YYYY-MM-DD ``` ### Parameters - `photo_folder`: Path to folder containing baby photos - `--name`: Baby's name for the cover - `--birth`: Baby's birth date (YYYY-MM-DD format) - `--output`: Output PDF filename (default: baby_photo_book.pdf) ### Example ```bash python scripts/generate_photo_book.py ~/baby_photos --name "小明" --birth 2023-06-15 ``` ## Layout Algorithm The skill uses an intelligent layout engine that: 1. **Analyzes photo aspect ratios** to determine optimal placement 2. **Calculates multiple layout options** for each page 3. **Selects the layout with minimum whitespace** 4. **Preserves photo proportions** without cropping ### Layout Patterns | Photos | Layout Strategy | |--------|-----------------| | 1 | Full page, maximized to fill available space | | 2 | Side-by-side or stacked, whichever minimizes whitespace | | 3 | Left-1-Right-2 or Top-1-Bottom-2 based on photo orientations | | 4 | 2×2 adaptive grid with aspect-ratio-aware cell sizing | ## Age Stages Photos are automatically grouped by baby's age: - **Newborn** (0-1 month) - **Early Infant** (1-3 months) - **Mid Infant** (3-6 months) - **Late Infant** (6-9 months) - **Crawling** (9-12 months) - **Early Toddler** (1-1.5 years) - **Mid Toddler** (1.5-2 years) - **Late Toddler** (2-3 years) ## Dependencies - Python 3.8+ - Pillow (image processing) - ReportLab (PDF generation) Install dependencies: ```bash pip install Pillow reportlab ``` ## Output Generates a PDF with: - Cover page with baby name - Chapter pages for each age stage - Photo pages with intelligent layouts - Date and age annotations on each photo


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gdp6539/partnership-priority-evaluator (version 1.0.0)

# Partnership Priority Evaluator - 合作优先级评估器 4 维度评分法 (技术门槛/市场需求/竞争壁垒/收益潜力)，快速评估新收入渠道可行性。阈值≥4.0 才推荐执行。 --- ## 触发条件 - 用户提到 "渠道评估" 或 "优先级评估" - 用户提到 "ROI 评估" 或 "是否值得" - 用户提供新渠道要求分析 --- ## 核心指令 ### 1. 4 维度评分 每个维度 1-5 分： - **技术门槛**: 实现难度 - **市场需求**: 用户痛点强度 - **竞争壁垒**: 差异化程度 - **收益潜力**: 预期收入 ### 2. 综合评分 ``` 综合评分 = (技术 + 市场 + 竞争 + 收益) / 4 ``` ### 3. 决策建议 - **≥4.0**: ✅ 推荐执行 - **3.0-3.9**: 🟡 谨慎评估 - **<3.0**: ❌ 建议放弃 --- ## 输出格式 ```markdown ## {渠道名} 评估报告 ### 4 维度评分 - 技术门槛：{N}/5 - 市场需求：{N}/5 - 竞争壁垒：{N}/5 - 收益潜力：{N}/5 ### 综合评分：{N.N}/5 ### 决策建议：{✅/🟡/❌} {建议} ``` --- ## 版本信息 - **版本**: 1.0.0 - **定价**: ¥420 ($59) - **分类**: Business/Strategy --- _完整方法见 references/framework.md_


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ssidharhubble/bollinger-bands-pro (version 1.0.1)

--- name: bollinger-bands-pro description: Volatility analysis and mean reversion signals. compatibility: OpenClaw, Zo Computer metadata: author: ssidharHubble --- # Bollinger Bands Analyst Volatility analysis and mean reversion signals. ## Usage This skill connects to the Money Machine x402 API. Calls are free for basic health, but premium signals require a 402 payment proof. ```javascript import { execute } from "bollinger-bands-pro"; const signal = await execute({ ticker: "BTC" }); ```

path: index.js
content: 
export async function run({ ticker = "BTC" }) {
  const url = `https://money-machine-x402-ssyopros.zocomputer.io/api/bollinger/${ticker.toUpperCase()}`;
  const response = await fetch(url);
  if (response.status === 402) {
    return {
      error: "402 Payment Required",
      message: "Premium signal. Send 0.005 SOL to AKz1pZ8yxtFQLwTpDKJGZjLeBUX4rnobX7HdMF3uvK6W",
      payment_url: "https://ssyopros.zo.space/pricing"
    };
  }
  return await response.json();
}

/**
 * @tool
 * @description Volatility analysis and mean reversion signals.
 * @param {string} ticker - Asset ticker (e.g. SPY, BTC, TSLA)
 */
export async function execute(args) {
  return await run(args);
}


path: package.json
content: name: bollinger-bands-pro
version: 1.0.1
description: Volatility analysis and mean reversion signals.
author: ssidharHubble
license: MIT
main: index.js
type: module

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: luckychay/xhs-note-auto-publish (version 1.0.0)

# xhs-auto-publish 技能 小红书笔记自动生成与发布技能，支持两种模式：外部主题模式和自动选题模式。 ## 功能描述 本技能封装了 `xhs-auto-publish-v2.sh` 脚本的功能，提供以下能力： 1. **外部主题模式**：使用用户指定的主题生成小红书笔记并发布 2. **自动选题模式**：自动搜索小红书社区热点内容确定主题，生成相关内容并发布 ## 使用方法 ### 作为技能调用 当用户提到以下关键词时激活此技能： - "自动发布小红书" - "小红书自动发布" - "xhs-auto-publish" - "小红书定时发布" - "自动生成小红书内容" - "帮我自动发小红书" - "小红书自动化发布" ### 技能激活后的行为 当技能被激活时，你应该： 1. 询问用户希望使用哪种模式（外部主题模式或自动选题模式） 2. 如果选择外部主题模式，询问具体主题 3. 确认后执行相应的脚本命令 4. 向用户反馈执行状态和结果 ### 直接脚本使用 你也可以直接在工作空间中使用脚本： ```bash # 进入工作空间目录 cd ~/.openclaw/workspace # 外部主题模式 ./scripts/xhs-auto-publish-v2.sh "新加坡Kaplan学院" # 自动选题模式 ./scripts/xhs-auto-publish-v2.sh --auto ``` ### 技能执行流程 1. **参数解析**：解析用户输入，确定使用哪种模式 2. **Prompt构建**：根据模式构建合适的prompt 3. **幂等性检查**：避免重复执行相同任务 4. **Agent调用**：调用OpenClaw agent执行内容生成和发布 5. **结果反馈**：向用户反馈执行状态 ## 脚本位置 主脚本位于：`scripts/xhs-auto-publish-v2.sh` ## 依赖关系 - 需要已安装并配置小红书技能 (`xhs`) - 需要OpenClaw agent正常运行 - 需要bash shell环境 ## 配置要求 无特殊配置要求，但建议： 1. 确保小红书技能已正确配置账号 2. 确保OpenClaw agent有足够权限执行任务 3. 如有需要，可以配置cron定时任务 ## 示例用法 ```bash # 外部主题模式 ./scripts/xhs-auto-publish-v2.sh "新加坡Kaplan学院" ./scripts/xhs-auto-publish-v2.sh "新加坡留学申请攻略" # 自动选题模式 ./scripts/xhs-auto-publish-v2.sh --auto ./scripts/xhs-auto-publish-v2.sh -a ``` ## 注意事项 1. **幂等性**：脚本会自动检查是否有相同任务正在运行，避免重复发布 2. **封面生成**：使用ImageMagick生成浅色背景深色字体封面 3. **标签要求**：必须包含 `#留学新加坡` 和 `#新加坡私立大学` 4. **发布策略**：仅发布一次，无论成功与否均停止 ## 技能文件结构 ``` xhs-auto-publish/ ├── SKILL.md # 技能说明文档 ├── references/ # 参考文件目录 │ ├── xhs-auto-publish-v2.sh # 主脚本副本 │ └── README.md # 详细使用指南 └── scripts/ # 辅助脚本目录 └── setup.sh # 安装配置脚本 ``` ## 更新日志 - v1.0.0 (2026-04-08): 初始版本，基于xhs-auto-publish-v2.sh创建

path: package-minimal.json
content: {
  "name": "xhs-auto-publish",
  "version": "1.0.0",
  "description": "小红书笔记自动生成与发布技能",
  "keywords": ["xiaohongshu", "xhs", "auto-publish", "automation"],
  "author": "新加坡留学顾问",
  "license": "MIT",
  "openclaw": {
    "skill": true,
    "category": "social-media"
  }
}

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: ckchzh/stretch (version 1.0.0)

--- name: "stretch" version: "1.0.0" description: "Stretching and flexibility reference — dynamic warm-ups, static holds, PNF techniques, and mobility routines. Use when designing warm-up protocols, improving flexibility, or preventing movement injuries." author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [stretch, flexibility, mobility, warm-up, recovery, fitness] category: "general" --- # Stretch — Stretching & Flexibility Reference Quick-reference skill for stretching science, mobility routines, and flexibility protocols. ## When to Use - Designing pre-workout warm-up routines - Creating post-workout cooldown stretches - Understanding PNF and dynamic stretching methods - Building mobility programs for specific body areas - Preventing common movement-related injuries ## Commands ### `intro` ```bash scripts/script.sh intro ``` Overview of stretching science — types, when to use each, and physiology. ### `dynamic` ```bash scripts/script.sh dynamic ``` Dynamic stretching routines for pre-workout activation. ### `static` ```bash scripts/script.sh static ``` Static stretching holds for post-workout cooldown and flexibility gains. ### `pnf` ```bash scripts/script.sh pnf ``` PNF (Proprioceptive Neuromuscular Facilitation) — advanced stretching techniques. ### `mobility` ```bash scripts/script.sh mobility ``` Joint mobility drills for shoulders, hips, ankles, and thoracic spine. ### `routines` ```bash scripts/script.sh routines ``` Complete stretching routines: morning, desk worker, pre-run, post-lift. ### `anatomy` ```bash scripts/script.sh anatomy ``` Key muscle groups and their stretching patterns. ### `mistakes` ```bash scripts/script.sh mistakes ``` Common stretching mistakes and injury prevention guidelines. ### `help` ```bash scripts/script.sh help ``` ### `version` ```bash scripts/script.sh version ``` ## Configuration | Variable | Description | |----------|-------------| | `STRETCH_DIR` | Data directory (default: ~/.stretch/) | --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ivangdavila/esp32 (version 1.0.0)

--- name: ESP32 description: Avoid common ESP32 mistakes — GPIO conflicts, WiFi+ADC2 trap, deep sleep gotchas, and FreeRTOS pitfalls. metadata: {"clawdbot":{"emoji":"📟","os":["linux","darwin","win32"]}} --- ## GPIO Restrictions - Strapping pins boot behavior — GPIO0, GPIO2, GPIO12, GPIO15 affect boot mode - GPIO6-11 connected to flash — don't use, crashes immediately - GPIO34-39 input only — no output, no pullup/pulldown - ADC2 unusable with WiFi active — use ADC1 (GPIOs 32-39) when WiFi enabled ## Deep Sleep - Only RTC GPIOs for wakeup — GPIO0, 2, 4, 12-15, 25-27, 32-39 - `RTC_DATA_ATTR` for persistent variables — regular RAM lost in deep sleep - `esp_sleep_enable_ext0_wakeup()` for single pin — `ext1` for multiple pins - WiFi reconnect takes 1-3 seconds after wake — plan for this delay ## WiFi Gotchas - Call `WiFi.mode()` before `WiFi.begin()` — mode affects behavior - `WiFi.setAutoReconnect(true)` doesn't always work — implement reconnect in loop - Event-driven with `WiFi.onEvent()` more reliable — don't poll `WiFi.status()` - Static IP faster than DHCP — saves 2-5 seconds on connect ## FreeRTOS - Default stack too small for printf/WiFi — use 4096+ for complex tasks - Task watchdog triggers at 5s default — call `vTaskDelay()` or feed watchdog - `xTaskCreatePinnedToCore()` for core affinity — WiFi on core 0, your code on core 1 - `delay()` yields to scheduler — `vTaskDelay(pdMS_TO_TICKS(ms))` in tasks ## Memory - Heap fragments over time — preallocate buffers, avoid repeated malloc/free - `ESP.getFreeHeap()` for monitoring — log periodically in long-running apps - PSRAM available on some boards — `heap_caps_malloc(size, MALLOC_CAP_SPIRAM)` - String concatenation fragments heap — use `reserve()` or char arrays ## Peripherals - No native `analogWrite()` — use LEDC: `ledcSetup()`, `ledcAttachPin()`, `ledcWrite()` - I2C needs external pullups usually — internal pullups too weak for fast speeds - SPI CS pin must be managed — `SPI.begin()` doesn't auto-configure - UART0 is Serial/USB — use UART1/2 for external devices ## OTA Updates - Needs two OTA partitions — default partition scheme may have only one - Check `ESP.getFreeSketchSpace()` — OTA fails silently if not enough space - `ArduinoOTA` blocks during update — handle in loop, not in time-critical code ## Power - Brown-out detector resets at ~2.4V — `esp_brownout_disable()` if using battery - WiFi TX uses 300mA peaks — power supply must handle spikes - Deep sleep ~10µA — but RTC peripherals add more if enabled


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nansen-devops/nansen-smart-money-alpha (version 0.1.0)

--- name: nansen-smart-money-alpha description: "What tokens is smart money accumulating before they pump? Token screener with SM filter cross-referenced against netflow." metadata: openclaw: requires: env: - NANSEN_API_KEY bins: - nansen primaryEnv: NANSEN_API_KEY install: - kind: node package: nansen-cli bins: [nansen] allowed-tools: Bash(nansen:*) --- # Alpha Discovery **Answers:** "What tokens is smart money accumulating before they pump?" ```bash CHAIN=solana nansen research token screener --chain $CHAIN --timeframe 24h --smart-money --limit 20 # → token_symbol, price_usd, price_change, volume, buy_volume, market_cap_usd, fdv, liquidity, token_age_days nansen research smart-money netflow --chain $CHAIN --labels "Smart Trader" --limit 10 # → token_symbol, net_flow_1h/24h/7d/30d_usd, trader_count # Confirm SM flow on a specific token from screener results [REDACTED_SECRET] nansen research token flow-intelligence --token $TOKEN --chain $CHAIN # → net_flow_usd per label: smart_trader, whale, exchange, fresh_wallets ``` Cross-reference screener results with positive netflow to find early accumulation. ## Source - npm: https://www.npmjs.com/package/nansen-cli - GitHub: https://github.com/nansen-ai/nansen-cli


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wingchiu/ganzhi-calendar (version 1.0.0)

--- name: chinese-calendar description: Calculate Chinese lunar calendar dates with Heavenly Stems (天干) and Earthly Branches (地支). Use when generating Chinese calendar tables, checking 黄历, or converting Gregorian dates to 干支 (stem-branch) dates for year/month/day. --- # Chinese Calendar Calculator ## Usage Run the script to generate weekly calendar: ```bash python3 scripts/calendar.py ``` Output format: ``` 丙午(马年) 🐎 | Date | Weekday | Nongli | 月天干地支 | 日天干地支 | | ---- | ------- | ------ | ---------- | ---------- | | 3月6日 | 周五 | 农历正月十八 | 辛卯月 | 己卯日 | ``` ## Calculation Method ### Reference Date - **1983-02-05 = 甲子日** (calibrated against verified sources) - Day stem-branch: `(days since reference) % 60` → stem = pos % 10, branch = pos % 12 ### Day Calculation ``` delta = (date - 1983-02-05).days stem_idx = delta % 10 branch_idx = delta % 12 day_stem_branch = STEMS[stem_idx] + BRANCHES[branch_idx] ``` ### Month Calculation Month branches: 正月=寅, 二月=卯, 三月=辰... ``` month_branch_idx = (month + 1) % 12 month_stem_idx = (year_stem_idx * 2 + month) % 10 month_stem_branch = STEMS[month_stem_idx] + BRANCHES[month_branch_idx] ``` ### Year Calculation ``` cycle_pos = (year - 4) % 60 year_stem_idx = cycle_pos % 10 year_branch_idx = cycle_pos % 12 year_stem_branch = STEMS[year_stem_idx] + BRANCHES[year_branch_idx] ``` ## Constants ```python STEMS = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'] BRANCHES = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'] ZODIAC = { '子': '鼠', '丑': '牛', '寅': '虎', '卯': '兔', '辰': '龙', '巳': '蛇', '午': '马', '未': '羊', '申': '猴', '酉': '鸡', '戌': '狗', '亥': '猪' } ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: patrick-erichsen-2/migrate-model-defaults (version 1.0.0)

--- name: migrate-model-defaults description: Find, classify, and update hardcoded default-like model references in a repo. Use when the user wants to replace model strings, audit model defaults, centralize model constants or workflow variables, or migrate CI/workflow/runtime defaults without bulk-replacing tests, docs examples, catalogs, or compatibility references. --- # Migrate Model Defaults ## Workflow Be terse. Minimal prose. Ask only necessary questions. Ask first: - Existing model string to replace? - New model string to use? Then search for the old string and likely variants: - If old is `provider/model`, also search bare `model`. - If old is bare, ask whether to include provider-qualified forms. - Pay special attention to `.github/workflows/**`; this repo often has workflow defaults in `env`, action `with.model`, and shell args such as `--model`, `--alt-model`, and `--candidate-label`. Ignore expected noise up front unless it controls default behavior: - changelog text - tests and fixtures - QA mock fixtures and mock catalogs - provider catalogs and model availability lists - model capability, compatibility, or alias handling - generated schema examples - plain docs examples Keep only default-like references: - configured defaults or fallback defaults - workflow/action defaults - CI, QA, release, E2E, or smoke default models - i18n/docs generation defaults - hardcoded runtime feature defaults Group candidates semantically, then present a concise checklist with repo-root-relative file refs and one short reason each. Do not edit until the user selects items. When editing: - Update only selected items. - Preserve whether each site expects a bare model id or provider-qualified ref. - If centralizing repeated workflow defaults, prefer repository variables such as `OPENCLAW_CI_OPENAI_MODEL`, `OPENCLAW_CI_OPENAI_MODEL_BARE`, and an explicit alt-model variable when needed. - If centralizing source defaults, prefer an existing shared defaults module before adding a new one. - Ask if string shape or ownership is unclear. Validation: - Run the repo-required first pass before searching when applicable. - For workflow edits, run `actionlint` if available or via `go run github.com/rhysd/actionlint/cmd/actionlint@latest <files>`. - Run the repo’s changed gate with the correct base. If the default base points at a stale fork, rerun against the real upstream base and report that. - Scan the touched surface for remaining old-model literals.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: johnnylambada/toolguard-daemon-control (version 0.0.1)

--- name: toolguard-daemon-control description: Manage long-running processes as macOS launchd services. Use when asked to start, stop, restart, check status of, or manage background services/daemons. Handles launchd plist creation, service lifecycle, and log access. Use this instead of background exec for any process that should persist beyond the current session. --- # toolguard-daemon-control Manage any executable as a persistent macOS launchd user agent. ## Overview Services are installed as `~/Library/LaunchAgents/ai.toolguard.<name>.plist` and run as user-level launch agents. They auto-restart on failure and log to `~/Library/Logs/toolguard/`. ## Scripts All scripts are in `scripts/` relative to this skill's directory. Run them with `bash`. ### install.sh — Create and start a service ```bash bash scripts/install.sh <service-name> <command> [args...] [--workdir <dir>] [--env KEY=VALUE ...] ``` - `service-name`: Short identifier (e.g., `toolguard-proxy`). Used in plist filename and log paths. - `command`: Absolute path to the executable. - `args`: Arguments passed to the command. - `--workdir <dir>`: Working directory for the process (default: `$HOME`). - `--env KEY=VALUE`: Environment variables (repeatable). Example: ```bash bash scripts/install.sh toolguard-proxy /usr/local/go/bin/go run ./cmd/server --config toolguard.dev.yaml --workdir ~/Documents/toolguard ``` ### uninstall.sh — Stop and remove a service ```bash bash scripts/uninstall.sh <service-name> ``` Unloads the service and removes the plist file. Logs are preserved. ### status.sh — Check service status ```bash bash scripts/status.sh [service-name] ``` Without arguments, lists all `ai.toolguard.*` services. With a name, shows detailed status for that service. ### logs.sh — View service logs ```bash bash scripts/logs.sh <service-name> [--follow] [--lines <n>] ``` Shows stdout and stderr logs. Default: last 50 lines. ### list.sh — List all managed services ```bash bash scripts/list.sh ``` Lists all installed `ai.toolguard.*` services with their running state. ## Notes - Services run as the current user (no sudo required). - Services auto-restart on crash (`KeepAlive = true`). - To run a Go project, use the compiled binary path or wrap in a shell script — launchd does not support `go run` directly. Use `go build` first, then point to the binary. - Log directory: `~/Library/Logs/toolguard/<service-name>/` - Plist location: `~/Library/LaunchAgents/ai.toolguard.<service-name>.plist`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (HIGH)
Skill: ckchzh/student (version 3.4.1)

--- name: student description: "Help with coursework. Use when taking notes, summarizing readings, formatting citations, outlining essays, or calculating GPA." version: "3.4.0" author: BytesAgain homepage: https://bytesagain.com source: https://github.com/bytesagain/ai-skills tags: - study - notes - citation - gpa - pomodoro - academic --- # Student — Study & Academic Assistant Take notes, summarize text, generate citations, outline essays, time study sessions, and track GPA. ## Commands ### note — Record a study note ```bash bash scripts/script.sh note <subject> "<content>" ``` Appends a timestamped note under the given subject. Notes stored in `~/.student/notes/`. ### summarize — Generate a text summary ```bash bash scripts/script.sh summarize <file_path> [max_sentences] ``` Reads a text file and outputs a summary by extracting key sentences. Defaults to 5 sentences. ### cite — Format a citation ```bash bash scripts/script.sh cite <apa|mla> "<author>" "<title>" <year> "[publisher]" "[url]" ``` Generates a formatted citation string in APA or MLA style. ### outline — Create an essay outline ```bash bash scripts/script.sh outline "<topic>" <num_sections> ``` Produces a structured outline with introduction, N body sections, and conclusion for the given topic. ### timer — Pomodoro study timer ```bash bash scripts/script.sh timer [work_minutes] [break_minutes] ``` Runs a Pomodoro timer. Defaults to 25 min work / 5 min break. Prints countdown to stdout. ### gpa — Calculate GPA ```bash bash scripts/script.sh gpa "<course:grade:credits>" ["<course:grade:credits>" ...] ``` Calculates GPA from course entries. Grade format: A/A-/B+/B/B-/C+/C/C-/D+/D/F. Example: `gpa "Math:A:3" "English:B+:4"` ## Output All commands print plain text to stdout. Notes are stored as text files in `~/.student/notes/<subject>/`. ## Requirements - bash 4+ - python3 (standard library only) ## Feedback Report issues or suggestions: [https://bytesagain.com/feedback/](https://bytesagain.com/feedback/) --- Powered by BytesAgain | bytesagain.com


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)