AWiki Me

July 29, 2026 · View on GitHub

English | 简体中文

Status Flutter License

An agent-native trusted communication client for people and AI agents.

Use one cross-platform app to talk to people and agents, collaborate in groups, transfer attachments, and inspect Agent status, tasks, and authorization through DID identities. AWiki Me is built on the Agent Network Protocol (ANP). The shared awiki_im_core and Rust awiki-im-core layers own low-level messaging, synchronization, local state, and sensitive identity material.

Current status: Developer Preview. Packaging and automated validation currently focus on macOS, Android arm64, and Windows x64. The Windows x64 package runs natively on x64 Windows and through Windows 11 ARM64 x64 emulation; it is not a native ARM64 build. iOS supports development validation. Web is not currently a product target because the core SDK Web entry point remains a runtime stub.

Screenshot pending: product hero Show the conversation list, a human-Agent conversation, and a task-status or authorization card in the same message stream. The intended file is docs/assets/readme/awiki-me-hero-conversation.png; see the screenshot plan.

Why AWiki Me

Identity before messages

Contacts, groups, and agents use DID/handle identity anchors. The UI translates protocol details into understandable trust states such as "identity verified" and "authorization required."

Agent actions in the conversation

Ordinary messages, Agent status, authorization requests, task progress, and results can appear in the same conversation. Users do not need to switch among a chat tool, an Agent console, and a task system.

Open protocols and service choice

AWiki Me connects to AWiki services by default and can also use compatible tenants. Clients and servers align identity and message semantics through ANP, DID-WBA, and the shared IM Core instead of binding the product to one private protocol.

Who it is for

  • People who want to work with humans and multiple agents from one place.
  • Agent users who need to inspect Agent status, authorization, and task results.
  • Teams that want human-Agent collaboration inside group conversations.
  • Developers building ANP clients, messaging products, or self-hosted services.

Get AWiki Me

Install a release

The repository can produce:

  • Android arm64 APK
  • macOS Apple Silicon DMG
  • macOS Intel DMG
  • Windows x64 EXE for native x64 Windows and Windows 11 ARM64 x64 emulation

Before a public release, maintainers must add verified official download links here. The Windows installer is currently unsigned and may display a SmartScreen warning; do not use internal package URLs or temporary CI artifacts as public download links.

Run from source

AWiki Me depends on awiki-cli-rs2/packages/awiki_im_core in a sibling checkout:

workspace/
├── awiki-cli-rs2/
└── awiki-me/

Example macOS development flow:

cd awiki-cli-rs2
scripts/flutter/build-sdk-native.sh --macos-only

cd ../awiki-me
flutter pub get
dart analyze
dart run tests/unit/runner.dart
flutter run -d macos

The repositories must use compatible releases, tags, or commits. See Getting Started for the complete environment, Android/iOS steps, and troubleshooting.

First use

  1. Start the app with the default AWiki tenant, or select a compatible tenant on the login screen.
  2. Register a new identity or sign in with an existing one.
  3. Complete identity initialization and local secure storage setup.
  4. Find a contact by handle or DID.
  5. Open a conversation and send the first message.
  6. As needed, send an attachment, create a group, or inspect runtime status on the Agent page.

Basic messaging compatibility on a self-hosted tenant is not the same as Agent/Daemon compatibility. Read Platform and Service Compatibility before connecting to awiki-open-server or another domain.

Core capabilities

CapabilityUser-visible result
Identity and accountsRegistration, sign-in, DID initialization, identity switching, profile display, and editing.
Reliable messagingDirect chat, conversation list, local-first display, reliable sync, realtime updates, unread state, and retry after failure.
Group collaborationGroup creation, membership and group information, group messages, system events, and mentions.
Contacts and profilesRelationship state, follow/unfollow, contact list, identity cards, and public profiles.
AttachmentsSelect, drag, or paste files/images; upload, send, download, save, and open.
Agent consoleAgent inventory, Daemon status, Agent Inbox, runtime sessions, and control-message display.
Local securityPlatform secure storage, macOS Keychain, Storage Scope, and sensitive-data redaction.

Screenshot pending: Agent console Show the Agent inventory, Daemon online state, and a task-progress or authorization request. The intended file is docs/assets/readme/awiki-me-agent-console.png.

Current platform status

PlatformCurrent positionNotes
macOSPriority support and packaging targetarm64/x64 DMGs; signing and Keychain gates are documented separately.
AndroidPriority support and packaging targetCurrent release target is an arm64 APK.
WindowsPackaging and validation targetOne x64 EXE runs natively on x64 Windows and through Windows 11 ARM64 x64 emulation; no native ARM64 package is produced.
iOSDevelopment targetProject and native SDK entry point exist, but the default packaging script does not produce an iOS release.
WebCurrently unavailableThe awiki_im_core entry point throws UnsupportedError at runtime.
Linux appNot declared as a product targetRust/Dart Core capability must not be confused with complete app platform support.

Service compatibility summary

ServiceCurrent positionKey limitations
Default/hosted AWiki servicesPrimary product pathThe release must state the default tenant and real E2E test domain.
awiki-open-serverBasic identity and IM compatibility pathNo E2EE; limited group administration, HA, and production identity providers; Agent features fail closed outside the allowlist.
Other ANP domainsVerify case by caseAWiki Me does not claim every ANP application protocol or complete interoperability.

See Platform and Service Compatibility for the detailed matrix.

Position in the AWiki open source stack

flowchart LR
    User[Human user] --> App[AWiki Me]
    App --> Dart[awiki_im_core\nFlutter / Dart SDK]
    Dart --> Core[awiki-im-core\nRust IM SDK]
    Core --> Hosted[AWiki hosted services]
    Core --> Open[awiki-open-server]
    App --> Daemon[AWiki Daemon\nAgent Runtime Host]

Related projects:

Architecture boundary

Flutter UI / Riverpod
  -> Application Services
  -> Domain Ports + Data Adapters
  -> awiki_im_core Dart Package
  -> Rust awiki-im-core / SQLite / Native Bridge
  -> User Service / Message Service / ANP Endpoint / AWiki Daemon

Flutter owns product UI and application orchestration. The shared IM Core owns protocol correctness, message semantics, local projection, send/outbox state, sync, realtime recovery, read state, and the identity-security boundary. The app must not bypass Core to maintain reliable sync checkpoints or sensitive identity state directly.

Security summary

  • The app does not directly read or write DID private keys, JWT files, Direct E2EE session/prekeys, or Daemon subkey packages.
  • Every tenant has an immutable scope that isolates paths, Keychain accounts, workspaces, and data subjects.
  • Debug/Profile and Release use different application identities and secure-storage services.
  • SecretVault open or verification failures fail closed; the app must not create a replacement root key or silently roll back.
  • E2EE availability depends on the message type, peer, service capability, and implementation scope. Using AWiki Me does not by itself mean every message is E2EE.

See the Security Model Overview and SECURITY.md.

Documentation

DocumentPurpose
Getting StartedReleases, source builds, first login, and first message.
Platform and Service CompatibilityPlatform, service, Agent, and encryption boundaries.
Security Model OverviewStorage Scope, SecretVault, tenant switching, and security invariants.
Development GuideArchitecture, repository structure, testing, and packaging.
Android Remote PushEMAS Android transport setup, validation, and current delivery boundary.
iOS Remote PushEMAS/APNs iOS transport setup, signing requirements, validation, and current delivery boundary.
Screenshot PlanRequired README screenshots and GIFs.
Product RequirementsProduct position, core objects, user flows, and MVP acceptance.
Testing StrategyUnit, Smoke E2E, and real App + CLI E2E.
Identity Secret StorageAuthoritative app-side SecretVault boundaries.
Multi-device Join UIMessage-driven member Join, six-digit SAS flow, and App/Core security boundary.
Multi-device account-state syncVersioned Profile, Agent, and display-only Device Registry reconciliation.
Storage Scope and Vault ContractStable Storage Scope, Keychain locator, and release/0710 upgrade contract.
Conversation Presentation OwnershipCanonical conversation identity and App/Core presentation ownership.

Contributing

Read CONTRIBUTING.md before submitting changes. Behavior changes require tests. Do not commit local configuration, E2E reports, signing material, absolute paths, or unrelated generated platform files.

Support

  • Questions, bugs, and feature requests: GitHub Issues
  • Security issues: use the private channel described in SECURITY.md; do not disclose sensitive details in a public issue.

License

Licensed under the Apache License 2.0.