Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Amgi

БесплатноНе проверен

Amgi MCP server — Python shim for uvx. Launches the bundled Amgi helper.

GitHubEmbed

Описание

Amgi MCP server — Python shim for uvx. Launches the bundled Amgi helper.

README

Amgi

암기 (amgi) — Korean for "memorization"

An open-source, offline-first Anki-compatible flashcard client for iOS and macOS with sync server support.

Swift 6.2 iOS 18+ macOS 15+ Rust FFI AGPL-3.0


Amgi wraps the official ankitects/anki Rust backend via C FFI, giving you a native SwiftUI experience backed by the same battle-tested engine that powers Anki Desktop and AnkiDroid. Sync your decks with any compatible sync server (including self-hosted), study with FSRS scheduling, and keep your review history in perfect sync across all your devices.

Features

  • Sync Server Support -- login, sync, full upload/download, bidirectional review sync with any compatible server
  • FSRS Scheduling -- powered by the official Rust FSRS engine, not a reimplementation
  • Dual Card Rendering -- Rust template engine renders cards exactly like desktop clients; simple cards are auto-detected and drawn by a native SwiftUI renderer (with per-template overrides and a render-mode picker), complex cards fall back to WebKit
  • Deck Browser -- hierarchical deck tree with recursive DisclosureGroup expand/collapse, new/learn/review count badges on every node
  • Study Session -- answer cards with Again/Hard/Good/Easy; elevated rating cards with next-interval labels, session progress bar, rating toast with auto-advance, native typed-answer field, and tap-to-play audio
  • Note Browser -- search notes across all decks, deck filter chips (top-level decks auto-include subdecks), lazy-load results (50 per page)
  • Note Editor -- edit note fields with accurate field names from the Rust notetype RPC
  • Statistics Dashboard -- full-year review heatmap (auto-scrolls to today), streak counter, retention rate, forecast chart, card count breakdown
  • Reader -- read books from your collection chapter-by-chapter; tap any word for a Yomitan-compatible dictionary lookup; chained popups, search history, per-dictionary collapsed memory; TTS speak button with language-aware voice selection; bundled Korean fonts (Sarasa Mono K, Nanum Myeongjo, Nanum Gothic); vertical writing mode and Latin/CJK auto-detection; cross-device progress sync
  • Multi-Profile Accounts -- isolated Anki collections per profile, fast picker in the decks toolbar, per-profile sync credentials and review history
  • Image Occlusion -- create and edit notes with rectangle, ellipse, polygon, and text masks; reviewer parity with upstream Anki
  • Multi-Theme System -- Vivid + Muted palettes, Light/Dark/Follow-System; persists across app and home-screen widgets via App Group
  • Per-Deck Study Options -- FSRS weights editor with optimizer + simulator, preset CRUD, Easy Days, bury rules, timer, auto-advance
  • Apple Watch App -- companion watchOS app with deck list, card review with audio playback, stats, and sync; the Anki engine runs on-device
  • Native macOS App -- the same source tree builds as a native SwiftUI Mac app (decks, study, browse, stats, sync, Reader with JS-driven page turns, and the image occlusion editor); universal Apple Silicon + Intel Rust backend
  • Safe Sync Merge -- when local and server collections diverge, merge them (keeping cards from both sides) instead of being forced to overwrite one; destructive choices require explicit confirmation
  • Offline-First -- everything works offline; sync when you have a connection
  • Swift 6.2 Strict Concurrency -- zero data races, fully actor-isolated, Sendable throughout

Screenshots

Decks Screen Stats Screen

Architecture

SwiftUI Views
    |
@DependencyClient structs
    |
AnkiBackend (Swift wrapper)
    |
C FFI (4 functions)
    |
Rust static library (ankitects/anki)

Swift owns the UI. Rust owns everything else -- database, sync, FSRS scheduling, card templates, statistics.

For the full architecture walkthrough, see ARCHITECTURE.md.

Requirements

Tool Version
iOS 18.0+
macOS 15.0+
Xcode 16.0+
Rust 1.92+ (via rustup)
protoc 3.0+
protoc-gen-swift latest
xcodegen latest

Getting Started

1. Clone with submodules

git clone --recursive https://github.com/antigluten/amgi.git
cd amgi

2. Install dependencies

# Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios aarch64-apple-darwin x86_64-apple-darwin

# Protobuf compiler and Swift plugin
brew install protobuf swift-protobuf

# Xcode project generator
brew install xcodegen

3. Build the Rust XCFramework

./scripts/build-xcframework.sh

This cross-compiles the Rust bridge for iOS device/simulator and macOS (universal arm64 + x86_64), then packages everything into AnkiRust.xcframework. The first build takes several minutes; incremental builds are fast. Set BUILD_MACOS=0 to skip the macOS slices for iOS-only loops (watchOS is opt-in via BUILD_WATCHOS=1).

4. Generate Swift protobuf types

./scripts/generate-protos.sh

5. Open in Xcode

cd AmgiApp && xcodegen generate && cd ..
open AmgiApp/AmgiApp.xcodeproj

6. Build and Run

Select the AmgiApp scheme, then choose an iOS Simulator/device or My Mac as the run destination. The same scheme and target support both platforms.

Tech Stack

  • UI: SwiftUI with strict concurrency (Swift 6.2, language mode v6)
  • Dependency Injection: swift-dependencies (@DependencyClient struct-closure pattern)
  • Backend: ankitects/anki Rust crate via C FFI
  • Serialization: Protocol Buffers (24 .proto service definitions)
  • Database: SQLite (owned by Rust backend)
  • Build: SPM for library modules, xcodegen for the app target

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) because it incorporates ankitects/anki (copyright Ankitects Pty Ltd), which is also AGPL-3.0. See LICENSE for the full license text.

The AGPL requires that if you distribute this software or run it as a network service, you must make the complete source code available under the same license.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines, code style, and the development setup. A list of contributors is maintained in CONTRIBUTORS.md.

Acknowledgments

  • Damien Elmes and the ankitects/anki contributors for the Rust backend that powers this app
  • DreamAfar for the v0.0.3 fork that contributed Image Occlusion, the multi-theme system, the Settings tab, the card template editor, retrievability stats, tag management, the rich note editor, and the GitHub Actions IPA workflow
  • AnkiDroid for pioneering the Rust backend bridge pattern on mobile
  • Point-Free for swift-dependencies

from github.com/bagumamartin/amgi

Установка Amgi

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/bagumamartin/amgi

FAQ

Amgi MCP бесплатный?

Да, Amgi MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Amgi?

Нет, Amgi работает без API-ключей и переменных окружения.

Amgi — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Amgi в Claude Desktop, Claude Code или Cursor?

Открой Amgi на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Amgi with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development