Agent Skillskeychat-io/keychat-app › architecture

architecture

GitHub

介绍Keychat安全消息应用的架构,涵盖Nostr、Signal、MLS及Ecash核心技术,解析Flutter包结构、GetX状态管理、Isar数据库及Rust FFI桥接机制。

.claude/skills/architecture/SKILL.md keychat-io/keychat-app

触发场景

询问Keychat应用架构 解释代码库组件 了解加密协议实现

安装

npx skills add keychat-io/keychat-app --skill architecture -g -y
更多选项

非标准路径

npx skills add https://github.com/keychat-io/keychat-app/tree/main/.claude/skills/architecture -g -y

不安装直接使用

npx skills use keychat-io/keychat-app@architecture

指定 Agent (Claude Code)

npx skills add keychat-io/keychat-app --skill architecture -a claude-code -g -y

安装 repo 全部 skill

npx skills add keychat-io/keychat-app --all -g -y

预览 repo 内 skill

npx skills add keychat-io/keychat-app --list

SKILL.md

Frontmatter
{
    "name": "architecture",
    "description": "Explains the Keychat app architecture and key components",
    "user-invocable": true,
    "disable-model-invocation": false
}

Keychat is a secure messaging app with a unique architecture. When explaining or working with the codebase, understand these key components:

Core Technologies

Technology Purpose Implementation
Nostr Protocol Message delivery/storage lib/nostr-core/, WebSocket connections
Signal Protocol 1:1 E2E encryption api_signal.rs via FFI
MLS Protocol Group E2E encryption api_mls.rs via FFI
Bitcoin Ecash Micropayments to relays api_cashu.rs, keychat_ecash/

Package Structure

packages/
├── app/                    # Main Flutter app
├── keychat_ecash/          # Ecash wallet functionality
└── keychat_rust_ffi_plugin/ # Native crypto via Rust

Key Services (packages/app/lib/service/)

  • signal_chat.service.dart - Signal protocol session management
  • mls_group.service.dart - MLS group key operations
  • websocket.service.dart - Nostr relay connections
  • chat.service.dart - High-level message routing
  • relay.service.dart - Relay management
  • identity.service.dart - User identity management

State Management

Uses GetX pattern:

  • Controllers in lib/controller/
  • Services are singleton instances
  • Reactive state with .obs observables

Database

Uses Isar (NoSQL for Flutter):

  • Models in lib/models/
  • Models use @collection annotation
  • Generated code via build_runner (*.g.dart, *.isar.dart)

Rust FFI Bridge

Native crypto operations use flutter_rust_bridge:

  • Rust code: packages/keychat_rust_ffi_plugin/rust/src/
  • Generated Dart bindings: packages/keychat_rust_ffi_plugin/lib/
  • Key APIs: Cashu, Nostr, Signal, MLS

Message Flow

  1. User composes message
  2. Signal/MLS encrypts content
  3. Message wrapped in Nostr event
  4. Ecash stamp attached (if relay requires payment)
  5. Sent via WebSocket to Nostr relay
  6. Recipient receives, decrypts, displays

版本历史

  • 294d00d 当前 2026-07-05 10:51

同 Skill 集合

.claude/skills/batch/SKILL.md
.claude/skills/bootstrap/SKILL.md
.claude/skills/flutter-check/SKILL.md
.claude/skills/generate/SKILL.md
.claude/skills/lint/SKILL.md
.claude/skills/pods/SKILL.md
.claude/skills/clean/SKILL.md
.claude/skills/run/SKILL.md
.claude/skills/rust-build/SKILL.md
.claude/skills/test/SKILL.md

元信息

文件数
0
版本
0cdb462
Hash
3f9b3e5a
收录时间
2026-07-05 10:51

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-01 08:25
浙ICP备14020137号-1 $访客地图$