Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nosterm(ノスターム)

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 で宣言):wsillwillsecp256k1nimSHA2ssl ディレクティブは nimble ファイルに設定済みです。

使い方

nimble run で起動します。初回は Nostr の秘密鍵(nsec1…)の入力を求められ、 ~/.nosterm_config に保存されます(パーミッション 600)。

ノーマルモード

キー 動作
i 新規投稿を作成
S nsec の再入力/変更
R リレー管理画面を開く
F 日本語のみフィルタの切り替え
K / 上にスクロール(古い投稿へ)
J / 下にスクロール(新しい投稿へ)
L 最新端(ライブ)へジャンプ
Q / Esc 終了

投稿

メッセージを入力し Enter で投稿。Esc でキャンセル。

  • メンション@ で選択画面を開き、そのまま文字を打つと表示名で絞り込み、 / で選び、Enter で挿入、Esc でキャンセル、Backspace で絞り込み を狭めます。
  • 日本語などマルチバイト文字はインラインで入力できます。

リレー管理画面(R

キー 動作
/ (または 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 を参照してください。

About

Nostr TUI Client

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages