janken-cli
v1.0.0
Published
A WebSocket-based janken (rock-scissors-paper) CLI game
Downloads
127
Readme
Janken CLI
WebSocket を使った対人型じゃんけん CLI です。
サーバーを立ててクライアント同士でリアルタイムに対戦できます。
Public Servers
[!Note]
npm でインストールした場合:
janken set host wss://janken-cli.oto.im jankenリポジトリをクローンした場合:
config.jsonのhostまたはpnpm client --host <hostname>で指定。
設定などは Client (git clone) を参照。
Node:
wss://janken-cli.oto.imCloudflare:
wss://janken-cli.devuloper.workers.devFeatures
- WebSocket によるリアルタイム対戦
- Node.js と Cloudflare Workers の両方に対応
- 表示名の設定(
--nameオプションまたは config ファイル) - テストモード(サーバー不要で CPU と対戦)
- 任意のパスの config ファイルを指定可能
Requirements
- Node.js v22 以上
- pnpm v9 以上
Installation
pnpm installClient
npx
Node.js さえあれば、リポジトリをクローンせずにそのまま遊べます。
npx janken-cli --host wss://janken-cli.oto.im --name YourNameグローバルインストールする場合:
npm install -g janken-cli
janken --host wss://janken-cli.oto.im --name YourNameセットアップ(グローバルインストール後)
--host / --name を毎回指定しなくて済むよう、set コマンドで設定を保存できます。
janken set host wss://janken-cli.oto.im
janken set name YourName設定はOS のユーザーディレクトリに保存されるため、パッケージをアップデートしても失われません。
| OS | 保存先 |
|---|---|
| Windows | %APPDATA%\janken-cli\config.json |
| macOS / Linux | ~/.config/janken-cli/config.json |
保存後は引数なしで起動できます。
janken優先順位
--name / --host > janken set で保存した設定 > デフォルト値Quick Start(git clone)
pnpm clientConfiguration(git clone)
config.json から設定を読み込みます。config.json.example をコピーして作成してください。
cp config.json.example config.jsonconfig.json フィールド一覧
| フィールド | デフォルト | 説明 |
|---|---|---|
| name | "Anonymous" | 対戦相手に表示されるプレイヤー名 |
| host | ws://localhost:3000 | 接続先サーバーの URL |
config.json 例
{
"name": "YourName",
"host": "ws://127.0.0.1:3000"
}[!Note]
ドメインを割り当てている場合はそちらを使用できます。
{ "host": "wss://example.com" }
Options
[!Note]
--configオプションは git clone でのセルフホスト向けです。
npm でインストールした場合はjanken setを使用してください。
pnpm client [options]| オプション | 説明 | デフォルト |
|---|---|---|
| --name <name> | 対戦相手に表示されるプレイヤー名 | config.json の name → "Anonymous" |
| --host <url> | 接続先サーバーの URL | config.json の host → ws://localhost:3000 |
| --config <path> | 使用する config ファイルのパス | config.json |
| --test | テストモード(サーバー不要、CPU と対戦) | — |
優先順位
--name > config.json の name > "Anonymous"
--host > config.json の host > "ws://localhost:3000"
--config → 指定したパスの JSON を読み込む使用例
# 名前を指定して接続
pnpm client --name Alice
# 接続先を指定
pnpm client --host ws://example.com
# カスタム config ファイルを使用
pnpm client --config ./my-config.json
# サーバー不要のテストモード
pnpm client --testHost (Node.js)
Quick Start
pnpm hostConfiguration
config.json から設定を読み込みます。config.json.example をコピーして作成してください。
cp config.json.example config.jsonconfig.json フィールド一覧
| フィールド | デフォルト | 説明 |
|---|---|---|
| port | 3000 | WebSocket サーバーのポート番号 |
config.json 例
{
"port": 3000
}Options
pnpm host [options]| オプション | 説明 | デフォルト |
|---|---|---|
| --port <port> | リッスンするポート番号 | config.json の port → 3000 |
| --config <path> | 使用する config ファイルのパス | config.json |
優先順位
--port > config.json の port > 3000
--config → 指定したパスの JSON を読み込む使用例
# ポートを指定して起動
pnpm host --port 4000
# カスタム config ファイルを使用
pnpm host --config ./my-config.jsonHost (Cloudflare Workers)
Quick Start
# 1. wrangler にログイン(初回のみ)
pnpm wrangler login
# 2. デプロイ
npx wrangler deploy
# 3. クライアントで接続
pnpm client --host wss://janken-cli.<your-subdomain>.workers.devConfiguration
wrangler.jsonc でデプロイ先を設定します。
| フィールド | 説明 |
|---|---|
| name | Workers のプロジェクト名(サブドメインになります) |
| compatibility_date | Workers の互換性日付 |
ローカル動作確認
pnpm dev:cfDevelopment
# テスト実行
pnpm test
# フォーマット
pnpm format
# フォーマットチェック
pnpm format:checkLicense
MIT
