Skip to content

Proposal: port the apfel on-device assistant (from rudzainy/damon-ade) as an optional macOS feature #72

Description

@duncsdownunder

What

Another ADE fork — rudzainy/damon-ade — built a "Siri-like" general Q&A assistant powered by Apple's on-device FoundationModels, via the apfel CLI toolchain. It shipped in three phases, each with a public design spec (docs/superpowers/specs/), tests, and a post-review bug-fix pass:

  1. Assistant entity — a pinned global assistant + on-demand per-team assistants (repo-aware via read-only fs MCP), backed by a hidden system project row.
  2. Persisted chat panel — non-terminal chat UI with threads in local SQLite; the app manages an apfel-run --serve process (local OpenAI-compatible server) with SSE streaming and a ~3.5k-token truncate-oldest history builder.
  3. Global Ctrl+Space overlay — system-wide spotlight ask: answer streams in, auto-copies to clipboard, Esc dismisses; each ask lands as a resumable thread.

Why it fits Papyrus

It's complementary to the coding-agent roster: free, private, offline answers for the hundred small questions a day that don't warrant cloud-agent tokens. Rudzainy's fork appears dormant, so porting is the way this work survives.

The obvious tension

It's Apple-only (macOS 26+, Apple Silicon, brew-installed toolchain), and Papyrus is OS-agnostic. Before writing any code I wanted to ask how you'd want that handled — options I see:

  • Platform-gated desktop feature (closest to the original; hidden when apfel is unavailable), or
  • Server-side runtime behind papyrus-server, so any connected device can use the assistant when the server machine is a Mac — which fits the one-server-any-screen architecture better, but means porting the server manager into server-core rather than Electron main.

The schema additions (assistant workspaces, conversations/messages tables) are platform-neutral either way.

I'm happy to do the port as a phased series of PRs mirroring the original's structure. Interested? And if so, which shape?

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions