npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@himeyama/carnelian

v1.1.0

Published

AWS EC2 一覧・SSM 接続ローカルツール

Readme

carnelian

npm version license node

AWS の EC2 インスタンスを一覧・SSM/Instance Connect で接続できるローカルツール。

EC2 一覧を表示し、画面内の仮想コンソール(ドラッグ可能なウィンドウ)から SSM セッションまたは Instance Connect で対象インスタンスに接続できる。EC2 情報取得と接続処理は バックグラウンドで AWS CLI を利用する。

インストーラ版・npm / npx 版のどちらも既定でデスクトップアプリ(Electron)として起動する。 中身は同じローカルサーバで、Electron はそれを WebView ウィンドウに表示しているだけ。 --no-electron を付けるとブラウザ版(ローカルサーバ起動 + 既定ブラウザで表示)で動く。

前提条件

  • AWS CLI v2(PATH 通過済み・aws configure でプロファイル設定済み)
  • AWS Session Manager Plugin(SSM セッションマネージャー接続に必須)
  • OpenSSH クライアントssh / ssh-keygen が PATH 通過済み。Instance Connect 接続に必須。 Windows 10/11 は C:\Windows\System32\OpenSSH に既定で同梱)
  • Node.js 18 以上 … npm 経由で使う場合のみ(インストーラ版は Node を同梱するため不要)
  • 対象 EC2 側の前提:
    • SSM 管理下(SSM Agent 導入済み)… セッションマネージャー接続時
    • パブリック IP が無い場合は同一 VPC に EC2 Instance Connect Endpoint が必要 … Instance Connect 接続時

AWS CLI / Session Manager Plugin / OpenSSH は外部バイナリのため、どの配布形態でも 別途インストールが必要。

インストール

1. Windows インストーラ(推奨)

carnelian-Setup-<version>.exe を実行する。ユーザー単位インストールのため管理者権限は不要で、 デスクトップとスタートメニューにショートカットが作られる。

2. npm

npm install -g @himeyama/carnelian
carnelian

グローバルインストール時にデスクトップショートカットを自動作成する。不要なら CARNELIAN_NO_SHORTCUT=1 を設定してインストールする。ショートカットは後から carnelian --install-shortcut / carnelian --remove-shortcut で追加・削除できる。

3. npx(インストールなし)

npx @himeyama/carnelian

ショートカットは作成されない。

起動

インストーラ版はショートカットから起動する(アプリウィンドウが開く)。

npm / npx 版はコマンドを実行すると既定で Electron のアプリウィンドウが開く。 --no-electron を付けるとローカルサーバが起動し、既定ブラウザが自動で開く (127.0.0.1 のみ待受、外部には公開しない。ポートが使用中の場合は自動で次のポートへ フォールバックする)。

オプション

Usage: carnelian [options]

Options:
  --electron        open the Electron desktop window (default)
  --no-electron     run the browser version instead (headless server + default browser)
  --port <number>   listen port, browser version only (default: 3000)
  --host <address>  listen host, browser version only (default: 127.0.0.1)
  --open            open the default browser after startup, browser version only (default)
  --no-open         do not open the browser, browser version only
  --install-shortcut  create a desktop shortcut and exit
  --remove-shortcut   remove the desktop shortcut and exit
  -h, --help        show this help
  -V, --version     show version

開発

pnpm install          # postinstall で xterm.js を public/vendor/ にコピー
pnpm start            # ブラウザ版(node app.js)
pnpm electron         # Electron 版

CARNELIAN_PORT を設定すると Electron 版のリッスンポートを固定できる(既定は空きポート自動選択)。

配布物のビルド

pnpm run icon         # build/icon.ico を再生成(アイコンを変えたときだけ)
pnpm run pack         # dist/win-unpacked/ に展開(インストーラは作らない)
pnpm run dist         # dist/carnelian-Setup-<version>.exe(NSIS)
pnpm pack             # npm 配布用 tarball

インストーラは未署名のため、初回実行時に SmartScreen の警告が出る。

使い方

  1. ヘッダーでプロファイル / リージョンを選択すると EC2 一覧が表示される。
  2. Instance ID・Private IP・Public IP はコピーアイコンでクリップボードにコピーできる。
  3. 一覧の「接続」から仮想コンソールウィンドウを開き、SSM セッションマネージャーまたは Instance Connect でシェルに接続する(複数インスタンスへ同時接続可)。

接続方法はヘッダーで切り替え可能(既定: セッションマネージャー)。Instance Connect 接続時の OS ユーザーは既定 ec2-user、環境変数 CARNELIAN_EIC_OS_USER で変更できる。

ドキュメント

  • DESIGN.md — 設計判断・ディレクトリ構成・API / WebSocket 仕様
  • TROUBLESHOOTING.md — 発生した問題の原因・対応・再発時の確認手順

ライセンス

MIT

終了

  • インストーラ版・npm / npx 版(既定の Electron): ウィンドウを閉じるとサーバと 全接続セッションを終了する。ターミナルからの Ctrl+C でも終了する。
  • npm / npx 版 + --no-electron: Ctrl+C(SIGINT)でサーバと全接続セッションを正常終了する。