hackathon-cli
hackathon CLIツールを活用し、ターミナルからハッカソンを作成したり、審査員や賞品を管理するなど、ハッカソン運営業務を効率的に行うことを支援するSkill。
📜 元の英語説明(参考)
Use the hackathon CLI tool to manage hackathons from the terminal. Use when the user asks to create hackathons, add judges, manage prizes, or perform hackathon management tasks using the hackathon command-line tool.
🇯🇵 日本人クリエイター向け解説
hackathon CLIツールを活用し、ターミナルからハッカソンを作成したり、審査員や賞品を管理するなど、ハッカソン運営業務を効率的に行うことを支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o hackathon-cli.zip https://jpskill.com/download/10393.zip && unzip -o hackathon-cli.zip && rm hackathon-cli.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10393.zip -OutFile "$d\hackathon-cli.zip"; Expand-Archive "$d\hackathon-cli.zip" -DestinationPath $d -Force; ri "$d\hackathon-cli.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
hackathon-cli.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
hackathon-cliフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Hackathon CLI — Oatmeal コマンドラインツール
hackathon CLI (@agi-ventures-canada/hackathon-cli) を使用して、ターミナルから Oatmeal ハッカソン プラットフォームを管理します。このスキルは、AI エージェントが CLI を使用してハッカソンを作成し、審査員を管理し、賞品を設定し、結果を公開するのを支援します。
直接 REST API アクセス (curl コマンド、デバッグ エンドポイント) には、hackathon-api スキルを代わりに使用してください。
参照ファイル
references/commands.md— すべてのフラグとオプションを含む完全な CLI コマンド リファレンスreferences/workflow-examples.md— 自然言語から CLI コマンドへのマッピングとエンドツーエンドの例
有効化のタイミング
- ユーザーが CLI またはターミナルを使用してハッカソンを作成、更新、または管理するように依頼した場合
- ユーザーが審査員、スポンサー、または賞品を追加/削除するように依頼した場合
- ユーザーが審査基準または割り当てを構成するように依頼した場合
- ユーザーが結果を計算または公開するように依頼した場合
- ユーザーが「日曜日の午前7時から午後9時までハッカソンを開催して」のような自然言語コマンドを発した場合
- ユーザーがハッカソンの管理に関連して「oatmeal」に言及した場合
有効化しないタイミング
- ユーザーが直接 REST API 呼び出しまたは curl コマンドを実行したい場合 (
hackathon-apiを使用) - ユーザーが Oatmeal コードベース自体を操作している場合 (ソースコードの編集、テストの実行)
- ユーザーが一般的なハッカソンの概念について質問している場合 (
hackathon-organizerまたはhackathon-attendeeを使用) - ユーザーが Oatmeal Web ダッシュボード UI を直接操作している場合
インストール
CLI のインストール
npm install -g @agi-ventures-canada/hackathon-cli
# or
npx @agi-ventures-canada/hackathon-cli
インストールを確認します。
hackathon --version
ローカル開発の場合 (リポジトリから)
bun cli <args> # Bun 経由で TypeScript ソースを直接実行
ログインと認証
# ブラウザベースのログイン (ブラウザを開き、API キーを自動的に作成)
hackathon login
# ローカル開発インスタンスに対してログイン
hackathon login --base-url http://localhost:3000
# または、API キーを直接指定
hackathon login --api-key sk_live_your_key_here
# または、環境変数で設定
export HACKATHON_API_KEY=sk_live_your_key_here
export HACKATHON_BASE_URL=http://localhost:3000 # optional
設定を確認します。
hackathon whoami
設定は ~/.hackathon/config.json に保存されます。--base-url はログイン後に記憶されます。
hackathon logout # 保存された認証情報を削除
コマンド構造
CLI は、--hackathon フラグではなく、リソース ID に位置引数を使用します。
hackathon <resource> <action> <id> [sub-id] [--flags]
すべてのコマンドは、機械可読な出力のために --json を、確認プロンプトをスキップするために --yes/-y をサポートしています。
ターミナル (TTY) で必須フラグが省略されている場合、CLI は @clack/prompts を介してインタラクティブにプロンプトを表示します。
コアコマンド
パブリックブラウジング (認証不要)
hackathon browse hackathons # パブリックハッカソンを検索
hackathon browse submissions <slug> # ハッカソンの提出物を表示
hackathon browse results <slug> # 公開された結果を表示
hackathon browse org <slug> # 組織のプロフィールを表示
ハッカソン管理
# ハッカソンを一覧表示
hackathon hackathons list
# 新しいハッカソンを作成 (フラグが省略されている場合はインタラクティブなプロンプト)
hackathon hackathons create --name "Sunday AI Hackathon" --slug "sunday-ai-hackathon"
# ハッカソンの詳細を取得 (ID または slug をサポート)
hackathon hackathons get <id-or-slug>
# 設定を更新
hackathon hackathons update <id-or-slug> --name "Updated Name" --description "New description"
# ハッカソンを削除
hackathon hackathons delete <id-or-slug>
審査 — 審査員
# 審査員を一覧表示
hackathon judging judges list <hackathon-id>
# メールアドレスで審査員を追加 (見つからない場合は招待状を送信)
hackathon judging judges add <hackathon-id> --email judge@example.com
# ユーザー ID で審査員を追加
hackathon judging judges add <hackathon-id> --user-id user_abc123
# 審査員を削除
hackathon judging judges remove <hackathon-id> <participant-id>
# 保留中の審査員招待状を一覧表示
hackathon judging invitations list <hackathon-id>
# 保留中の招待状をキャンセル
hackathon judging invitations cancel <hackathon-id> <invitation-id>
審査 — 基準
# 基準を一覧表示
hackathon judging criteria list <hackathon-id>
# 基準を作成
hackathon judging criteria create <hackathon-id> \
--name "Innovation" \
--description "How novel and creative is the solution?" \
--max-score 10 \
--weight 1.0
# 基準を更新
hackathon judging criteria update <hackathon-id> <criteria-id> --weight 1.5
# 基準を削除
hackathon judging criteria delete <hackathon-id> <criteria-id>
審査 — 割り当て
# 審査員を提出物に自動割り当て
hackathon judging auto-assign <hackathon-id> --per-judge 5
# 進捗状況とともに割り当てを一覧表示
hackathon judging assignments list <hackathon-id>
# 審査員を手動で提出物に割り当て
hackathon judging assignments create <hackathon-id> --judge <pid> --submission <sid>
# 割り当てを削除
hackathon judging assignments delete <hackathon-id> <assignment-id>
# ピックベースの結果を表示
hackathon judging pick-results <hackathon-id>
賞品
# 賞品を一覧表示
hackathon prizes list <hackathon-id>
# 賞品を作成
hackathon prizes create <hackathon-id> \
--name "First Place" \
--description "Grand prize for the winning team" \
--value "$5,000"
# 賞品を更新
hackathon prizes update <hackathon-id> <prize-id> --name "Grand Prize"
# 賞品を削除
hackathon prizes delete <hackathon-id> <prize-id>
# 賞品の順序を変更
hackathon prizes reorder <hackathon-id> <prize-id-1> <prize-id-2> <prize-id-3>
# 賞品を提出物に割り当て
hackathon prizes assign <hackathon-id> <prize-id> --submission <submission-id>
# 賞品の割り当てを解除
hackathon prizes unassign <hackathon-id> <prize-id> <submission-id>
審査員表示
hackathon judge-display list <hackathon-id>
hackathon judge-display create <hackathon-id> --name "Judge Panel" ...
hackathon judge-display updat 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Hackathon CLI — Oatmeal Command-Line Tool
Manage the Oatmeal hackathon platform from the terminal using the hackathon CLI (@agi-ventures-canada/hackathon-cli). This skill guides AI agents through using the CLI to create hackathons, manage judges, set up prizes, and publish results.
For direct REST API access (curl commands, debugging endpoints), use the hackathon-api skill instead.
Reference Files
references/commands.md— Complete CLI command reference with all flags and optionsreferences/workflow-examples.md— Natural language to CLI command mappings and end-to-end examples
When to Activate
- User asks to create, update, or manage a hackathon using the CLI or terminal
- User asks to add/remove judges, sponsors, or prizes
- User asks to configure judging criteria or assignments
- User asks to calculate or publish results
- User gives natural language commands like "make me a hackathon on Sunday from 7am to 9pm"
- User mentions "oatmeal" in the context of hackathon management
When NOT to Activate
- User wants to make direct REST API calls or curl commands (use
hackathon-api) - User is working on the Oatmeal codebase itself (editing source code, running tests)
- User is asking about general hackathon concepts (use
hackathon-organizerorhackathon-attendee) - User is working with the Oatmeal web dashboard UI directly
Installation
Install the CLI
npm install -g @agi-ventures-canada/hackathon-cli
# or
npx @agi-ventures-canada/hackathon-cli
Verify installation:
hackathon --version
For local development (from the repo)
bun cli <args> # Runs TypeScript source directly via Bun
Login & Authentication
# Browser-based login (opens browser, creates API key automatically)
hackathon login
# Login against a local dev instance
hackathon login --base-url http://localhost:3000
# Or provide an API key directly
hackathon login --api-key sk_live_your_key_here
# Or set via environment variable
export HACKATHON_API_KEY=sk_live_your_key_here
export HACKATHON_BASE_URL=http://localhost:3000 # optional
Verify your setup:
hackathon whoami
Config is saved to ~/.hackathon/config.json. The --base-url is remembered after login.
hackathon logout # Remove saved credentials
Command Structure
The CLI uses positional arguments for resource IDs, not --hackathon flags:
hackathon <resource> <action> <id> [sub-id] [--flags]
All commands support --json for machine-readable output and --yes/-y to skip confirmation prompts.
When required flags are omitted in a terminal (TTY), the CLI prompts interactively via @clack/prompts.
Core Commands
Public Browsing (no auth required)
hackathon browse hackathons # Search public hackathons
hackathon browse submissions <slug> # View submissions for a hackathon
hackathon browse results <slug> # View published results
hackathon browse org <slug> # View organization profile
Hackathon Management
# List your hackathons
hackathon hackathons list
# Create a new hackathon (interactive prompts if flags omitted)
hackathon hackathons create --name "Sunday AI Hackathon" --slug "sunday-ai-hackathon"
# Get hackathon details (supports ID or slug)
hackathon hackathons get <id-or-slug>
# Update settings
hackathon hackathons update <id-or-slug> --name "Updated Name" --description "New description"
# Delete a hackathon
hackathon hackathons delete <id-or-slug>
Judging — Judges
# List judges
hackathon judging judges list <hackathon-id>
# Add a judge by email (sends invitation if not found)
hackathon judging judges add <hackathon-id> --email judge@example.com
# Add a judge by user ID
hackathon judging judges add <hackathon-id> --user-id user_abc123
# Remove a judge
hackathon judging judges remove <hackathon-id> <participant-id>
# List pending judge invitations
hackathon judging invitations list <hackathon-id>
# Cancel a pending invitation
hackathon judging invitations cancel <hackathon-id> <invitation-id>
Judging — Criteria
# List criteria
hackathon judging criteria list <hackathon-id>
# Create a criterion
hackathon judging criteria create <hackathon-id> \
--name "Innovation" \
--description "How novel and creative is the solution?" \
--max-score 10 \
--weight 1.0
# Update a criterion
hackathon judging criteria update <hackathon-id> <criteria-id> --weight 1.5
# Delete a criterion
hackathon judging criteria delete <hackathon-id> <criteria-id>
Judging — Assignments
# Auto-assign judges to submissions
hackathon judging auto-assign <hackathon-id> --per-judge 5
# List assignments with progress
hackathon judging assignments list <hackathon-id>
# Manually assign a judge to a submission
hackathon judging assignments create <hackathon-id> --judge <pid> --submission <sid>
# Delete an assignment
hackathon judging assignments delete <hackathon-id> <assignment-id>
# View pick-based results
hackathon judging pick-results <hackathon-id>
Prizes
# List prizes
hackathon prizes list <hackathon-id>
# Create a prize
hackathon prizes create <hackathon-id> \
--name "First Place" \
--description "Grand prize for the winning team" \
--value "$5,000"
# Update a prize
hackathon prizes update <hackathon-id> <prize-id> --name "Grand Prize"
# Delete a prize
hackathon prizes delete <hackathon-id> <prize-id>
# Reorder prizes
hackathon prizes reorder <hackathon-id> <prize-id-1> <prize-id-2> <prize-id-3>
# Assign a prize to a submission
hackathon prizes assign <hackathon-id> <prize-id> --submission <submission-id>
# Unassign a prize
hackathon prizes unassign <hackathon-id> <prize-id> <submission-id>
Judge Display
hackathon judge-display list <hackathon-id>
hackathon judge-display create <hackathon-id> --name "Judge Panel" ...
hackathon judge-display update <hackathon-id> <display-id> ...
hackathon judge-display delete <hackathon-id> <display-id>
hackathon judge-display reorder <hackathon-id> <id-1> <id-2> ...
Results
# Calculate rankings from submitted scores
hackathon results calculate <hackathon-id>
# View results (organizer detail view)
hackathon results get <hackathon-id>
# Publish results (makes public, transitions to completed)
hackathon results publish <hackathon-id>
# Unpublish results
hackathon results unpublish <hackathon-id>
Webhooks
# List webhooks
hackathon webhooks list
# Create a webhook
hackathon webhooks create \
--url "https://your-endpoint.com/hook" \
--events "submission.submitted,participant.registered"
# Delete a webhook
hackathon webhooks delete <webhook-id>
Jobs
hackathon jobs list
hackathon jobs get <job-id>
hackathon jobs create --type <job-type> ...
hackathon jobs result <job-id>
hackathon jobs cancel <job-id>
Schedules
hackathon schedules list
hackathon schedules create --name "Daily sync" ...
hackathon schedules get <schedule-id>
hackathon schedules update <schedule-id> ...
hackathon schedules delete <schedule-id>
Global Options
| Flag | Description |
|---|---|
--json |
Output as JSON instead of formatted table |
--yes, -y |
Skip confirmation prompts |
--base-url |
Override API base URL for this command |
--api-key |
Override API key for this command |
--help, -h |
Show help |
--version, -v |
Show version |
Finding the Current Hackathon
When a user says "my current hackathon" or "my hackathon":
hackathon hackathons list
Look for the hackathon with active or published status. If ambiguous, ask which one they mean.
The CLI supports slug resolution — most commands that take a hackathon ID also accept a slug (e.g., hackathon hackathons get my-hackathon-slug).
Date Handling
When users say things like "make me a hackathon on Sunday from 7am to 9pm":
- Parse the dates — convert natural language to ISO 8601 timestamps
- Use the user's timezone if known, otherwise ask
- Create the hackathon first, then update dates via the dashboard or API (the CLI
createcommand focuses on name/slug/description) - Default status is
draft— remind the user to publish when ready
Error Handling
Common errors:
- "Not authenticated" — run
hackathon loginor setHACKATHON_API_KEYenv var - "Insufficient permissions" — API key lacks required scope, create a new key with proper permissions
- "Not found" — verify the hackathon/resource ID exists with a list command
- "Conflict" — duplicate resource (slug already taken, already registered, etc.)
Tips for AI Agents
- Always store IDs — capture returned
idvalues for use in subsequent commands - Use
--jsonflag — parse output programmatically with--jsonfor reliable ID extraction - Check before creating — list existing resources before creating duplicates
- Confirm destructive actions — ask the user before deleting or publishing
- Batch operations — when setting up a full hackathon, create criteria, prizes, then add judges
- Default to draft — create hackathons in draft status, let the user decide when to publish
- Use
--yes— pass-yto skip interactive confirmations when running non-interactively
Full Reference
For the complete command reference, see references/commands.md.
For end-to-end workflow examples, see references/workflow-examples.md.