wilma について
Wilma Skillは、保護者向けフィンランドの学校情報システムから、時間割、宿題、成績、メッセージ、ニュースを取得するエージェントやユーザー向けのスキルです。利用可能なら`wilma_*` MCPツールを使い、なければ`wilma` CLIを使います。どちらも同じ形式のJSONを返します。
主な機能
- 01子どもごとの日次サマリー
- 02時間割、宿題、試験情報
- 03成績と授業記録
- 04メッセージ、ニュース、添付ファイル
- 05Wilmaのログインとアカウント管理
活用シーン
- 01保護者向けに学校の最新情報を日次でまとめる
- 02子どもの時間割と宿題を確認する
- 03成績と教師の授業記録を確認する
- 04学校のメッセージを読み、告知のファイルを取得する
MCP 対応
`wilma_*` MCPツールが利用できる場合はそれらを使ってWilmaの情報や操作にアクセスし、利用できない場合は`wilma`または`wilmai` CLIを使います。どちらも同じ形式のJSONを返します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aikarjal/ wilmai --skill wilmaインストール後、Claude Code で/wilmaを入力して読み込まれたか確認します。
同梱ファイルscripts/wilma-cli.sh
詳細
Wilma スキル
概要
Wilma は、学校や自治体が保護者とメッセージ、ニュース、試験、スケジュール、宿題など、生徒に関する最新情報を共有するために使用する、フィンランドの学校情報システムです。
Wilma にアクセスする方法は 2 つあります。どちらも同じ形式の JSON で、同じデータを返します。
- MCP ツール —
wilma_*という名前のツール(WilmAI コネクター、デスクトップ拡張機能またはプラグイン)が利用できる場合は、それらを使用してください。シェルは不要です。 - CLI — それ以外の場合は、
wilma(またはwilmai)コマンドを使用してください。実行すると JSON が出力されます(--jsonは不要です)。wilma help <command>を実行すると、使い方、例、JSON の形式が表示されます。
どちらもデフォルトですべての子どもが対象です。対象を 1 人に絞るには、student / --student <number|name> を指定してください。結果は子どもごとに返されます:{ students: [{ student: { studentNumber, name, wilma? }, … }] }。時刻はフィンランド時間のオフセット付きです(2026-10-02T13:37:00+03:00)。変換せず、そのまま伝えてください。ユーザーに日付を伝える際は、回答する言語に合わせて表記してください。フィンランド語なら ke 7.10.(最後にピリオドを付けます)、英語なら Wed 7 Oct です。Wilma のテキストはフィンランド語の表記を使用するため、2 つの形式を混在させず、変換してください(Wed 7.10 は不可)。
| MCP ツール | CLI コマンド |
|---|---|
wilma_summary | wilma summary [--since <date>] |
wilma_schedule | wilma schedule [today|tomorrow|week|next-week|<date>|<weekday>] |
wilma_homework | wilma homework |
wilma_upcoming_exams | wilma exams |
wilma_grades | wilma grades |
wilma_gradebook | wilma gradebook |
wilma_lesson_notes | wilma notes [--date <date> | --days N] |
wilma_lesson_notes_summary | wilma notes summary |
wilma_list_messages / wilma_read_message | wilma messages / wilma messages <id> |
wilma_list_news / wilma_read_news | wilma news / wilma news <id> |
wilma_get_news_attachment | wilma news <id> download <resource> |
wilma_list_printouts / wilma_get_printout | wilma printouts / wilma printouts <id> |
wilma_account | wilma students, wilma accounts |
wilma_find_school | wilma find-school <city> |
| — | wilma home(WilmAI Home。デスクトップアプリのダウンロード先です) |
wilma_login | wilma login |
wilma_logout | wilma logout |
日付は YYYY-MM-DD、today、yesterday または tomorrow です。
ログイン
ユーザーは一度ログインすると、そのログイン情報がコンピューターに保存されます。
- ユーザー自身のコンピューターの場合:
wilma loginを実行する(またはwilma_loginを呼び出す)。ユーザーのブラウザーでページが開き、学校の Wilma を選んでログインできます。コマンドが完了するまで待ちます。 - ユーザーから見えないクラウドコンピューターの場合(アクセスできるブラウザーがない場合):
- 子どもの学校がある都市(または学校名)を尋ねます。
wilma find-school <city>を実行する(またはwilma_find_schoolを呼び出す)と、検索結果からユーザーが選べます。同じ都市に複数の Wilma(市立学校、私立学校、カレッジなど)があることもよくあります。 - ユーザーに、シークレットまたは環境設定に
WILMA_USERNAMEとWILMA_PASSWORDを追加してもらいます。アカウントで2段階認証を使っている場合は、WILMA_TOTP_SECRETも追加し、WILMA_TENANTを選択した Wilma のアドレスに設定してもらいます。これで、保存済みログインがなくてもすべてのコマンドが動作します。別の方法として、wilma login --tenant <url> --username <name> --password-stdinを実行します。
- 子どもの学校がある都市(または学校名)を尋ねます。
- 検索のために引数なしで
wilmaを実行しないでください。ターミナルでは人間向けのメニューが開き、プログラムから実行するとヘルプが表示されます。 - Wilma のパスワードをチャットに入力するようユーザーに求めてはいけません。
- 子どもが異なる Wilma を使っている場合(市立学校と私立学校など):ユーザーはログインページで「別の Wilma を追加」を選ぶか、別途
wilma loginを実行して各ログインを追加します。保存したログインはすべて一緒に使われ、子どもには Wilma を示すwilmaフィールドが付与されます。wilma accountsでログイン一覧を確認できます。
コマンドは毎回ログインするのではなく、直前の Wilma セッションを引き継ぎます(ログインするたびに、ユーザー自身のブラウザーで親が Wilma からログアウトされるため)。そのため、続けて複数のコマンドを実行しても問題ありません。
ユーザーがブラウザーで Wilma を使いたい場合、またはログアウトを求めた場合は、wilma logout を実行するか、wilma_logout(wilma-cli 2.2+)を呼び出します。これにより WilmAI の Wilma セッションは終了しますが、保存済みログインは残ります。その後、ユーザーから求められない限り、Wilma のコマンドを実行しないでください。次のコマンドで再度ログインが行われ、ブラウザー上の Wilma からログアウトされます。
インストール
npm i -g @wilm-ai/wilma-cli
主なタスク
毎日のブリーフィング(ここから始めます)
wilma summary
wilma summary --since yesterday
子どもごとに、本日と次の登校日の授業、今後の試験(開始時刻がある場合はそれも表示)、最近の宿題、前回の登校日以降の授業メモ(教師からのフィードバックと欠席)、最近のお知らせ、最近のメッセージと未読メッセージ(unread、replyCount)を表示します。--since <date> を指定すると、その日以降の情報だけが表示されます。スケジュールされた日次実行ではこれを使ってください。Wilma が一部の情報を提供できなかった場合は、unavailable に該当する情報が示されます。
時間割
wilma schedule tomorrow
wilma schedule week
wilma schedule next-week
wilma schedule 2026-03-10
wilma schedule thu --student <number|name>
デフォルトは今週です。tomorrow は次の登校日を示します。曜日(mon…sun、またはフィンランド語の ma…su)を指定すると、その曜日の次の予定日を示します。授業には教師(複数の場合は全員)が含まれ、Wilma が教室を提供する場合は room も含まれます。
宿題と試験
wilma homework
wilma exams
各試験には、日付、科目、名前、トピック(勉強する内容)、教師が含まれます。学校が時刻を提供している場合、time は開始時刻を示します(それ以外は null)。
成績
wilma grades # recent exam grades
wilma gradebook # course and report-card grades
成績簿(Suoritukset)は、科目 → シラバス → コースのツリー構造です。各項目には grade、credits、修了日を示す date が含まれます。末尾が LV のコースコードは、通常、学年末の成績(通知表の成績)です。リストが空の場合、まだ成績が付けられていません。
授業メモ(merkinnät)
wilma notes --date yesterday
wilma notes --days 14
wilma notes summary
教師が各授業について記録するメモです。肯定的なフィードバック、行動に関する指摘、教科書や宿題の忘れ物、欠席の分類(病気、理由あり、理由なし)が含まれます。指定しない場合は1日分(本日)が対象です。直近 N 日分は --days N、期間を指定する場合は --from/--to を使います。教師は通常、授業中または授業後にメモを記入するため、朝に実行する場合は前日分を指定してください(概要ではすでに前日分が使われています)。教師が何か記入している場合、その内容は note に表示されます。
notes summary は、今年度のメモを typeLabel ごとに集計します(または --from/--to で期間を指定します)。たとえば、健康上の理由で欠席した授業の数を確認できます。
各メモの start/end 時刻は Wilma の授業時間割に基づいており、授業時間単位で正確です。subject はコースコード(例:MA_8LV は数学の8年生を示します。授業に関するメモでない場合は空欄)で、typeLabel は Wilma のフィンランド語ラベルです。
メッセージとお知らせ
wilma messages
wilma messages --folder appointments
wilma messages <id>
wilma news
wilma news --older
wilma news <id>
メッセージ一覧には、unread のメッセージと replyCount が表示されます。wilma messages <id> は replies を含むスレッドを返します。wilma news は、日付が新しいお知らせと、固定されたすべてのお知らせ(pinned: true。学年度のお知らせなど)を返します。--older を指定すると、古いお知らせ(archived: true。一度読まれたものは日付が付与されます)も追加されます。複数の Wilma が接続されていない限り、項目を読む際に --student は必要ありません。
印刷物
wilma printouts
wilma printouts <id> --output <directory>
学校が提供する成績表や欠席報告などの PDF 文書です(学校によって異なります)。
お知らせの添付ファイル
wilma news <id> が返す resources 配列を必ず確認してください。各リソースには次の情報があります。
id— お知らせ内で一意の ID(resource-1、resource-2、…)。ダウンロードコマンドでは数字のみ(1)も使用できます。label— お知らせ内に表示されるリンクテキストです。url— 絶対 URL です。authContext—"wilma":ダウンロードには Wilma セッションを使用します。"external":Wilma の認証情報を送信しない、独立した未認証の取得を使用します(サインアウトしたブラウザーでリンクを開く場合と同様です)。fileName— URL パスがファイルのように見える場合の名前のヒントです。実際のファイルでも null の場合があります。
どのリソースもダウンロードを試すことができます。 URL がファイルを公開しているか、サインインが必要か、通常のウェブページかを事前に確実に判別する方法はありません。そのため、CLI は推測せず、ダウンロードを試みて実際の結果を報告します。ユーザーの依頼に関連する文書がある場合は、ダウンロードを試してください。
wilma news <news-id> download <resource-id> --output <directory>
返された status を次のように処理してください。
downloaded— ファイルが保存されました。返された絶対pathを使用し、お知らせのラベルから推測するのではなく、contentType/sizeBytesを基準にしてください。not_a_file— リンク先がファイルではなくウェブページを返しました。通常、文書へのアクセスにサインインが必要な場合(たとえば、非公開のクラウドドライブの共有リンク)か、リンク先が単なるウェブページです。このことをユーザーに伝えてください。アクセスが必要な場合は、外部サービスの認証情報を持つ、ユーザーが認証したブラウザーセッションでurlを開いてください。ダウンロードを繰り返し試みないでください。- エラー(以下を参照) — ダウンロードの試行自体が失敗しました(HTTP エラー、ネットワークの問題、サイズ制限)。
messageを報告してください。
--output を使い、ダウンロード先をタスク専用ディレクトリにしてください(既定では現在の作業ディレクトリです)。既存のファイルが上書きされることはありません。代わりに数値の接尾辞が追加されます。
content に埋め込まれた URL よりも、リソースのメタデータを優先してください。content は本文であり、リンクのみのお知らせでは null の場合があります。
MCP ツールでは、wilma_get_news_attachment はファイル自体を返します(テキストはインライン、画像は画像として、PDF などのその他のファイルは埋め込みファイルとして)。また、同じ not_a_file の処理も行います。save: true を指定すると、ユーザーの Downloads/WilmAI フォルダーにもコピーを保存します。
子どもの選択
--student には、生徒番号、フルネーム、または名か姓の先頭部分(「Kiia Example」の場合は Kiia)を指定できます。名前が不明または曖昧な場合はエラー(unknown_student/ambiguous_student)となり、子どもの一覧が表示されます。迷った場合は、wilma students に表示される番号またはフルネームを指定してください。
エラー
エラーも JSON 形式です:{ "status": "error", "code": "…", "message": "…" }(場合によっては hint と cause も含まれます)。終了コード 2 は使用方法のエラーを示します(invalid_argument、unknown_command — コマンドを修正してください。wilma help <command> を参照してください)。終了コード 3 は not_logged_in を示します(「ログイン」を参照)。終了コード 1 はそれ以外を示します:unknown_student、ambiguous_student、not_found、login_failed(保存されたパスワードが使えなくなっています。ユーザーに wilma login を再実行してもらってください)、mfa_required/mfa_failed、network、wilma_error。
MFA(二段階認証)
Wilma アカウントで MFA/TOTP が有効になっている場合、ログインを無人で実行するには認証アプリのセットアップキー(base32 キーまたは otpauth:// URI)が必要です。
wilma login: Wilma で必要な場合、ログインページでセットアップキーを求められ、ログイン情報とともに保存されます。- 環境変数:
WILMA_TOTP_SECRETを設定します。 - 1回限りの指定:
--totp-secret <base32-key|otpauth://...>はどのコマンドでも使用できますが、コマンドラインに指定したキーはシェルの履歴に残るため、上記の方法をおすすめします。
注意事項
- CLI に保存済みのログイン情報がないと表示された場合は、
wilma loginを実行してください(同じ Wilma に再度ログインすると、そのログイン情報が置き換えられます)。wilma accountsで保存済みのログイン情報を一覧表示でき、wilma accounts remove <number>で1件削除できます。wilma config clearは保存済みのログイン情報をすべて削除します。 - このスキルは WilmAI CLI 2.x 用です。
wilma --versionの出力が 1.x の場合は、wilma updateを実行してください(それまでは、scripts/wilma-cli.shが npx 経由で 2.x を実行します)。 - 更新。 WilmAI の新しいバージョンが公開されると、コマンドは標準エラー出力に
Update available: <old> → <new>と表示します(1日につき最大1回)。まずユーザーの依頼を完了してからwilma updateを実行するか、ここでソフトウェアをインストールできない場合はユーザーに伝えてください。 - 返信、申し込み、欠席連絡。 WilmAI は Wilma の情報を読むことだけができます。ユーザーがメッセージへの返信、イベントへの申し込み、欠席連絡を希望する場合は、その旨を伝えて Wilma を案内してください。または、同じプロジェクトのデスクトップアプリでこれらの操作ができる WilmAI Home を案内してください(
wilma homeで使用するコンピューター用のダウンロード先が表示されます。CLI がない場合は https://wilm.ai/home)。Home を案内するのはこのような場合、またはユーザーが自分用の Wilma アプリを希望する場合に限ってください。ダウンロードとインストールはユーザー自身が行います。 - 1.x のコマンド表記(
kids list、tenants、attendance list、<command> list、messages read <id>、news read <id>、news resource download …、--all-students)も引き続き使用できます。 - 管理対象マシンでの TLS エラー。 コマンドが
networkコードと、UNABLE_TO_GET_ISSUER_CERT_LOCALLYなどのcauseを伴って失敗する場合、ネットワークで TLS が傍受され、Node が信頼していないプライベートルート CA によって証明書が再署名されています。再試行せず、hintを確認してその内容を報告してください。対処するには、CLI をNODE_USE_SYSTEM_CA=1(Node >=22.19/>=24.6)を指定して実行するか、node --use-system-ca "$(command -v wilma)"(Node >=22.15)を実行します。NODE_TLS_REJECT_UNAUTHORIZED=0は絶対に提案しないでください。検証が完全に無効になります。npm installが成功しても TLS が正常だとは限りません。npm レジストリは検査対象から除外されていることがよくあります。
アクションにつながる情報の指針(保護者向け)
Wilma には、緊急の項目と一般情報が混在しています。保護者向けに要約する際は、対応が必要な項目を優先してください。
含める項目:
- 対応や準備(書類、返信、許可、持参する物)が必要なもの。
- 学用品や宿題の不足、行動、理由不明の欠席に関する授業メモ。
- 保護者が開始したスレッドへの返信(メッセージ一覧の
replyCount)。 - 期限や特定の時刻までに必要なことを知らせるもの。
- 予定の変更や注目すべきイベント(遠足、テーマデー、休校、試験)について説明するもの。
- 宿題、試験、今後の期限に関するもの。
優先度を下げる項目:
- 対応、期限、予定への影響がない純粋な情報。
- 対象期間に関係のない一般的なお知らせ。
判断に迷う場合は、含めて保護者が決められるようにしてください。日付と ID を含む、短く構成の整った要約を心がけてください。
スクリプト
scripts/wilma-cli.sh は、インストール済みの wilma(または wilmai)が 2.x 以降の場合はそれを実行し、それ以外の場合は npx 経由で最新の 2.x リリースを実行します。
リンク
- GitHub: https://github.com/aikarjal/wilmai
- ウェブサイト: https://wilm.ai