Nim で書かれた Nostr の TUI(ターミナル UI)クライアントです。
Nosterm を使うと、ターミナルから複数のリレーに対してノート(kind 1)や プロフィール(kind 0)を読み書きできます。日本語入力、@メンション、 リレーごとの読み書き制御にも対応しています。
- 複数リレー対応 — TUI からリレーの追加・削除・読み書きの切り替えが その場で可能。自分のアカウントのリレー一覧(NIP-65 / kind 10002)も 取得して選んで追加できます。
- 日本語入力 — マルチバイト UTF-8 を IME の変換崩れなしでインライン入力 できます。
- @メンション —
@を押すと選択画面が開き、さらに文字を打つと表示名で 絞り込み、選んで挿入できます。投稿時はnostr:npub1…トークンとpタグ として送信されます。 - クライアントタグ — 各ノートの投稿者名の下に
· via <クライアント名>を 表示。Nosterm からの投稿は緑色で表示されます。 - スパム対策 — 内容が空のノートは表示しません。
- 日本語のみフィルタ — 日本語以外のノートを非表示にする切り替えがあります。
Nim >= 2.2.10 と OpenSSL(wss:// 用)が必要です。
nimble build # ./Nosterm を生成
nimble run # ビルドして起動依存ライブラリ(Nosterm.nimble で宣言):ws、illwill、secp256k1、
nimSHA2。ssl ディレクティブは nimble ファイルに設定済みです。
nimble run で起動します。初回は Nostr の秘密鍵(nsec1…)の入力を求められ、
~/.nosterm_config に保存されます(パーミッション 600)。
| キー | 動作 |
|---|---|
i |
新規投稿を作成 |
S |
nsec の再入力/変更 |
R |
リレー管理画面を開く |
F |
日本語のみフィルタの切り替え |
K / ↑ |
上にスクロール(古い投稿へ) |
J / ↓ |
下にスクロール(新しい投稿へ) |
L |
最新端(ライブ)へジャンプ |
Q / Esc |
終了 |
メッセージを入力し Enter で投稿。Esc でキャンセル。
- メンション:
@で選択画面を開き、そのまま文字を打つと表示名で絞り込み、↑/↓で選び、Enterで挿入、Escでキャンセル、Backspaceで絞り込み を狭めます。 - 日本語などマルチバイト文字はインラインで入力できます。
| キー | 動作 |
|---|---|
↑ / ↓(または K/J) |
リレーを選択 |
r |
読み取り の切り替え |
w |
書き込み の切り替え |
a |
リレーを追加(wss:// または ws:// の URL を入力) |
d |
選択したリレーを削除 |
f |
アカウントのリレー一覧(kind 10002)を取得して選ぶ |
Esc |
ノーマルモードへ戻る |
f を押すと、NIP-65 で公開されているリレー一覧が取得され選択画面になります。
↑/↓ で選び Enter で追加、Esc で戻ります。
設定は ~/.nosterm_config に JSON 形式で保存されます。
{
"nsec": "nsec1…",
"relays": [
{ "url": "wss://yabu.me", "read": true, "write": true }
]
}nsec のみを書いた旧形式のファイルは自動的にマイグレーションされます。
設定が存在しない場合は、デフォルトリレー wss://yabu.me が 1 つだけ使われます。
ファイルはパーミッション 600 で書き込まれます。
- イベント ID と署名の hex は小文字で送信されます(リレーは大文字小文字を 区別して比較するため)。
- 内容が空のノートはスパムとして表示されません。
nostr:npub1…トークンはタイムライン上では@表示名として表示されます。
MIT — LICENSE を参照してください。