https://github.com/puyokura/revolt.chat_cli_cliant
revolt.chat_cli_cliant
https://github.com/puyokura/revolt.chat_cli_cliant
cli nodejs revolt revolt-chat terminal typescript
Last synced: 6 months ago
JSON representation
revolt.chat_cli_cliant
- Host: GitHub
- URL: https://github.com/puyokura/revolt.chat_cli_cliant
- Owner: puyokura
- Created: 2025-07-31T06:57:53.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-11-11T13:14:00.000Z (9 months ago)
- Last Synced: 2025-11-11T15:10:11.468Z (9 months ago)
- Topics: cli, nodejs, revolt, revolt-chat, terminal, typescript
- Language: TypeScript
- Homepage: https://revolt-chat-cli-client.pages.dev
- Size: 496 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Revolt.chat CLIクライアント
## 概要
このアプリケーションは、ターミナルから[Revolt.chat](https://revolt.chat)に接続し、リアルタイムでメッセージの送受信ができる、インタラクティブなコマンドラインインターフェース(CLI)クライアントです。
## 主な機能
- **インタラクティブなログイン**: メールアドレスとパスワードで安全にログインします。セッショントークンはローカルに保存され、次回以降の起動を高速化します。
- **サーバーとチャンネルの選択**: 参加しているサーバーとチャンネルを一覧表示し、最後に選択したものを記憶します。
- **リアルタイムなメッセージング**: メッセージを瞬時に送受信できます。
- **複数行入力**: 空の行でEnterキーを押すだけで、複数行のメッセージを簡単に送信できます。
- **多彩なスラッシュコマンド**:
- `/help`: 利用可能なすべてのコマンド一覧を表示します。
- `/users`: 現在のチャンネルにいるユーザーを一覧表示します。
- `/whoami`: あなたのユーザー情報を表示します。
- `/nick `: サーバーでのニックネームを設定します。
- `/profile `: ユーザーのプロフィールを表示します。
- `/status [msg]`: ステータス(online, idle, busy, invisible)とメッセージを設定します。
- `/upload`: ローカルマシンからファイルをアップロードします。
- `/reply `: 特定のメッセージに返信します。
- `/edit `: 自分のメッセージを編集します。
- `/delete `: 自分のメッセージを削除します。
- `/logout`: 現在のセッションからログアウトし、設定ファイルを削除します。
- `/leave`: 現在のチャンネルから退出します。
- `/exit`: アプリケーションを終了します。
- `/config`: CLIの設定を表示・変更します。
- `/userconfig`: ユーザー設定を表示・変更します。
- `/serverconfig`: サーバー設定を表示・変更します。
- `/kick `: サーバーからユーザーをキックします。
- `/ban [reason]`: サーバーからユーザーをBANします。
- `/timeout [reason]`: ユーザーを一定時間タイムアウトさせます。
## プロジェクトの構造
このプロジェクトはTypeScriptで書かれており、以下のファイルで構成されています。
- `src/index.ts`: アプリケーションのメインエントリーポイント。ログイン、WebSocket接続、チャンネル選択、メッセージループの開始など、全体の流れを制御します。
- `src/lib/api.ts`: Revolt APIとの通信を担当します。ログイン、メッセージの送受信、ファイルアップロードなど、すべてのAPIリクエストがこのファイルに集約されています。
- `src/lib/commands.ts`: `/`で始まるスラッシュコマンドの処理ロジックを実装しています。各コマンドに対応する関数が含まれています。
- `src/lib/config.ts`: ユーザーの認証トークンや最後に選択したチャンネルなど、設定情報の読み書きを行います。設定はホームディレクトリの`.revolt-cli-config.json`に保存されます。
- `src/lib/types.ts`: APIレスポンスなどで使用されるデータ構造(User, Channel, Messageなど)の型定義をまとめています。
- `src/lib/ui.ts`: ターミナル上での表示やユーザーとの対話(inquirerによるプロンプトなど)を担当します。メッセージのフォーマットやチャンネル選択のUIなどが含まれています。
## 開発者向けガイド
### 前提条件
- [Node.js](https://nodejs.org/) (v16以上を推奨)
### インストール
1. リポジトリをクローンします:
```sh
git clone https://github.com/puyokura/revolt.chat_cli_cliant.git
cd revolt.chat_cli_cliant
```
2. 依存関係をインストールします:
```sh
npm install
```
### クライアントの実行
開発モードでクライアントを実行するには、以下のコマンドを使用します:
```sh
npm start
```
## 配布用のビルド
このプロジェクトは`pkg`を利用して、単一の実行可能ファイルを生成します。これにより、Node.jsがインストールされていない環境でもアプリケーションを実行できます。
### Windows向けのビルド
Windows (64-bit) 用の`.exe`ファイルを生成するには、以下のコマンドを実行します:
```sh
npm run package
```
コマンドが完了すると、プロジェクトのルートディレクトリに実行可能ファイル(例: `revolt.exe`)が生成されます。
## ライセンス
このプロジェクトはISCライセンスの下で公開されています。
## あとがき
バグなどをIssueで報告してくれると助かります。