Skip to content

semantic-craft/anamra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anamra banner

Capture → AI classify → confirmable tasks + semantic memory
截图记事 · OCR / 翻译 · 今日收件箱 · Agent
Native macOS menu-bar app for turning screen moments into local, reviewable work.

macOS 14+ version 0.2.4 SwiftUI native BYOK SwiftData source of truth

Releases · Project context · Design system · ADRs

Anamra · 安记

Anamra is a native macOS menu-bar app for capturing what flashes by on your screen, letting AI turn it into a draft task or note, and keeping the final source of truth on your Mac.

安记 means: 安心地把该记的记下来。截图、速记、剪藏、OCR 文本和任务澄清都先进入本地收件箱;AI 只生成草稿,你确认之后才会进入任务、笔记或可选的 Apple apps 出口。

A local home base

Today, Inbox, Upcoming, Notes, and Accomplishments live in Anamra's own SwiftData model. Search can work by meaning, not just keywords.

Anamra main window

Capture without ceremony

Use screenshot capture, OCR text extraction, screenshot copy, annotation, quick capture, clipboard, drag-and-drop, or web clipping. Global shortcuts are user-controlled from Settings.

Anamra settings and shortcuts

Small confirmations, visible results

The menu-bar app can surface compact results, such as pickup codes or extracted task facts, before anything is exported.

Anamra notch result island

What It Does

  • Capture: screenshot note, OCR-only text capture, screenshot-to-translate, screenshot copy, screenshot annotate, screenshot save, quick capture, paste, drag, and web clipping.
  • Classify: AI drafts a TaskCandidate or Note with kind, domain, schedule, tags, priority, subtasks, and context.
  • Review: the inbox is the gate. AI output becomes a draft first; user confirmation decides what persists or syncs out.
  • Remember: confirmed tasks and notes can be embedded for semantic search and injected as context when clarifying work.
  • Act: the Agent panel can operate on tasks through structured tools. Higher-risk actions stay confirmable.
  • Export: Apple Reminders, Calendar, and Notes are optional one-way exits. Anamra reads back only completion state from Reminders.

How It Works

flowchart LR
  Capture["Capture\nscreenshot, text, clipboard, web"] --> OCR["OCR / LLM draft"]
  OCR --> Inbox["Review inbox"]
  Inbox --> Task["TaskCandidate"]
  Inbox --> Note["Note"]
  Task --> Store["Local SwiftData\ncanonical source"]
  Note --> Store
  Store --> Search["Semantic search\nand Agent context"]
  Store --> Plan["WritePlan"]
  Plan --> Apple["Optional Apple exits\nReminders / Calendar / Notes"]
  Apple --> Done["Completion-only readback"]
  Done --> Store
Loading

The architectural rule is intentionally boring: Core stays pure Swift, and AppKit / SwiftUI / SwiftData side effects live in the macOS target.

Install

  1. Download the latest Anamra-x.y.z.dmg from Releases.
  2. Drag Anamra into Applications and launch it from the menu bar.
  3. Open Settings and configure the model provider you want to use. Keys are BYOK and stored in Keychain.
  4. Bind global shortcuts in Settings → General. Defaults are intentionally blank.

Screen Recording permission is needed for screenshot capture, OCR, screenshot translation, copy, annotation, and save. Users can skip that permission and still use non-screenshot workflows.

Privacy Model

  • Local canonical store: tasks, notes, review state, and sync receipts live in the local SwiftData model.
  • BYOK: online providers use the user's own API keys. Keys are stored in Keychain, not in the repo.
  • Provider choice matters: local Apple Vision / local Ollama paths can stay on device; if a cloud OCR, embedding, translation, or LLM provider is selected, the relevant input is sent directly to that provider.
  • Draft before write: AI output must become a reviewable draft before Anamra writes to external systems.
  • No two-way merge: Apple apps are optional exits, not the source of truth. Only Reminders completion can flow back.

Build

Prerequisite:

brew install xcodegen

Common commands:

scripts/verify.sh              # Core tests, then macOS build
(cd Core && swift test)        # Core unit tests only
scripts/build.sh               # XcodeGen + xcodebuild
scripts/release.sh check       # Release preflight checks

project.yml is the Xcode project source of truth. Edit it, then regenerate with XcodeGen or run scripts/build.sh. Do not hand-edit the generated .xcodeproj.

Development Notes

  • macOS 14+, SwiftUI + AppKit, Core Swift Package, SwiftData.
  • Swift tools version is 6.0, but Swift language mode is intentionally 5.
  • Core/ has no AppKit, SwiftUI, or SwiftData imports.
  • DEBUG preview data is available with ANAMRA_SEED=1; preview windows can be selected with ANAMRA_PREVIEW=panel|main|history|settings|notch.
  • Design tokens live in macOS/Sources/DesignTokens.swift; product design rules live in docs/DESIGN.md.

Project Map

project.yml          XcodeGen project definition
Core/                Pure Swift package: models, services, agent tools, memory
macOS/Sources/       SwiftUI views, AppKit helpers, SwiftData stores, capture UI
macOS/Resources/     App resources and sounds
docs/adr/            Architecture decisions
docs/screenshots/    QA and product screenshots
scripts/             Build, verify, and release scripts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors