💗 llove
A cute, terminal-first Artifact for inspecting LLMesh data — with llove.
.--.
/ \ llove
( ^ ^ ) "Made with llove"
\(--)/ ── Watch your LLMesh with llove
/ \
──────
ll♥ve
llove は Claude HTML Artifacts のターミナル版 を目指したダッシュボード CLI です。
LLMesh の SensorEvent / SPC / RAG / Audit / Trace を 1 つの TUI(ターミナル UI)で美しく流し、
そのまま 1 ファイル HTML にエクスポート して Slack / Issue / プレゼンに貼れます。
pip install llmesh-llove # PyPI 配布名 (llmesh-mcp と統一)
llove demo # 30 秒で動くフル機能デモ
なぜ llove か
LLM 時代の運用・研究の現場では、「いま何が起きているかを 1 画面で見せる」 がいつも難所になります。 LLMesh は産業 IoT・SCADA・RAG・Audit・Trace を統一しましたが、可視化 はまだ JSON / ログ依存。
llove はその穴を埋めます:
- 30 秒で動く:
pip install llove && llove demo - LLMesh と直結:
llove view --source llmesh+modbus://... - HTML で共有:
llove export --html dashboard.html(Claude Artifacts 流の単一 HTML) - オフラインでも動く: 合成データだけで完結、ネットワーク不要
- 依存ゼロでも見える: 本体は Textual + Rich のみ、LLMesh は オプショナル
5 秒で見えるイメージ
┌─ llove demo ──────────────────────────────────────────────────────────┐
│ ┌─ SensorEvent stream ─────────┐ ┌─ SPC chart (CUSUM h=5.0) ────────┐ │
│ │ 03:22:08 bearing_temp 68.4 │ │ ╭────────────╮ │ │
│ │ 03:22:09 bearing_temp 69.1 │ │ ──╯ ╰──── h │ │
│ │ 03:22:10 bearing_temp 70.7 │ │ │ │
│ │ 03:22:11 bearing_temp 74.3 │ │ │ │
│ │ 03:22:12 bearing_temp 78.9 │ │ ▁▂▃▄▆█ ▶ ALARM 03:22:11Z │ │
│ └──────────────────────────────┘ └──────────────────────────────────┘ │
│ ┌─ Audit log ──────────────────────────────────────────────────────┐ │
│ │ 03:22:11 firewall.allow layer=L2 user=ops │ │
│ │ 03:22:11 cusum.alarm sensor=bearing_temp_07 cusum=+9.4 │ │
│ │ 03:22:11 llm.explain tokens=237 latency=412ms │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ q: quit r: refresh h: help space: live/replay e: export-html │
└────────────────────────────────────────────────────────────────────────┘
Quick Start
1. インストール
pip install llove # 本体(オフラインで動く)
pip install "llove[llmesh]" # LLMesh と接続
pip install "llove[plots,llmesh]"# textual-plotext のグラフ + LLMesh
2. 30 秒デモ
llove demo # 合成データでフル機能のデモ
llove demo --tutorial # 各ビューを順に解説しながら触る
llove --lang ja demo --scenario scada # UI を日本語で(v0.2.0+)
多言語化 (i18n)
UI は --lang en / --lang ja で切り替えられます(環境変数 LLOVE_LANG=ja、システムロケール自動検出にも対応)。新しい言語を足すには llove/i18n/locales/<lang>.toml を 1 つ追加するだけ。詳細は docs/i18n.md。
3. 自分のデータを見る
llove tail logs/audit.jsonl --view audit_log
llove view --source llmesh+modbus://10.0.0.10:502
llove view --source sqlite:///data.db --table sensors
4. HTML として共有
llove export --source mock://demo --html dashboard.html
# → dashboard.html を Slack / Issue / Twitter に貼る
基本コマンド
llove demo # フル機能デモ(合成データ)
llove demo --list # シナリオ一覧
llove demo --scenario firewall # 個別シナリオを起動
llove view --source <URI> # ライブ表示
llove tail <file> # ファイル末尾を流す
llove export <source> --html <path> # 1 ファイル HTML
llove --help # コマンド一覧
LLMesh 機能カバレッジシナリオ
llove demo --scenario <name> で、LLMesh の各機能を オフライン合成データで 体験できます。
| name | 何を見せる | カバーする LLMesh 機能 |
|---|---|---|
firewall |
12 prompt が L0/L1/L1.5/L2 で BLOCK / SUMMARIZE / ALLOW される様子 | PromptFirewall 4 層 |
scada |
センサー drift → CUSUM alarm → LLM の Markdown 説明 | ExplainedCUSUM + LLMExplainer |
multimodal |
数値センサー × 画像 caption の AND 結合 SPC | UnifiedSPC + VLMFeatureExtractor |
rag |
同じクエリを 3 ストア(Numpy / SQLite / LSH ANN)で比較 | RAG 3 段ストア |
backends |
同じプロンプトを Ollama / OpenAI / Anthropic に投げた風の比較 | LLM backend ABC |
audit |
5 エントリ追加 → 改ざん → verify_chain() が検知 |
AuditTrail HMAC chain |
reliability |
パケット損失下で ACK / RETRANSMIT / TTL 失効を実演 | MessageAssembler + ChunkSender |
自分のシナリオを追加するのは超簡単です — docs/contributing-scenarios.md と llove/demo/scenarios/_template.py を参照(5 分でできます)。
URI スキーム例
| URI | 意味 |
|---|---|
mock://demo |
合成データ |
jsonl:///path/to/file.jsonl |
JSON Lines ファイル |
sqlite:///data.db?table=events |
SQLite テーブル |
llmesh+modbus://10.0.0.10:502 |
LLMesh + Modbus アダプタ |
llmesh+opcua://opc.tcp://... |
LLMesh + OPC-UA |
開発環境
devcontainer / docker-compose で 1 発
# devcontainer (VS Code) — クローン後 "Reopen in Container"
# または手動で:
docker compose up -d
docker compose exec dev bash
pip install -e ".[dev,all]"
llove demo
ローカルセットアップ
git clone git@github.com:furuse-kazufumi/llove.git
cd llove
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,all]"
pytest
llove demo
アーキテクチャ概観
┌────────────────────────────────────────────────────────┐
│ Data Sources (DataSource ABC) │
│ mock / jsonl / sqlite / llmesh / phoenix / custom │
└───────────────┬────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ Views (View ABC) │
│ sensor_stream / spc_chart / audit_log / │
│ rag_hits / trace_timeline │
└───────────────┬────────────────────────────────────────┘
│
┌───────┴────────┐
▼ ▼
┌────────┐ ┌──────────────┐
│ Textual│ │ HTML Export │
│ (TUI) │ │ (single .html)│
└────────┘ └──────────────┘
詳細は REQUIREMENTS.md と ROADMAP.md。
Docs
REQUIREMENTS.md— 要件定義 + TRIZ 観点での矛盾解消ROADMAP.md— v0.1 〜 v1.0 のフェーズ計画docs/snapshots/— 各バージョンで動く絵(GitHub プレビュー)
ライセンス
MIT © 2026 Kazufumi Furuse
Made with llove — お気軽に Issue / PR / アイデアをどうぞ.
Metadata
Release files for llmesh-llove 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| llmesh_llove-0.2.2.tar.gz | 153.4 kB | Without provenance | Details for llmesh_llove-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| llmesh_llove-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for llmesh_llove-0.2.2-py3-none-any.whl |
Total release size: 216.0 kB
Release files / llmesh_llove-0.2.2.tar.gz
| Download URL | llmesh_llove-0.2.2.tar.gz |
|---|---|
| Size | 153.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d1638691a6e313ed9d8a9358ca90938662f3eee18d1592743d80dc6ea93ce752
|
|
BLAKE2b-256 checksum How to use checksums |
6c4cc2e7d9b32b089c300ad5eec91ad57f30e8fab66b912d29e05e36aa0c4e7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / llmesh_llove-0.2.2-py3-none-any.whl
| Download URL | llmesh_llove-0.2.2-py3-none-any.whl |
|---|---|
| Size | 62.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
573a18dfa2eb4f1aca1a8dceb9c21972f7f09dfc5861f044f64e6fe2cb37b49f
|
|
BLAKE2b-256 checksum How to use checksums |
985fb1ccb55002b04f9e25554afacbb5411bc62a40d6223480c4730acef36a17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for llmesh-llove 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.