3개월의 반복에서 완전 오픈소스로: Open Minis의 진화之路

2026년 7월, Open Minis의 창립자 Ethan Wang이 X에서 iOS와 Android 코드의 완전 오픈소스를 발표했습니다. 이 트윗은 빠르게 개발자 커뮤니티에서 폭발적인 반응을 일으켰습니다 — "possibly the best Agent app on your phone". 3-4개월의 집중적인 반복을 거쳐, 이 앱은 이미 수만 명의 사용자의 일상 워크플로우를 지원하고 있습니다.

2026년 8월 기준, Open Minis는 GitHub에서 3,900+ Star, 457 Fork를 획득하여, 모바일 AI Agent 분야에서 가장 주목받는 오픈소스 프로젝트가 되었습니다. MacStories의 Federico Viticci는 "the most impressive indie app I've seen in a while"로 평가했으며, 知乎의 평가에서는 "Apple Intelligence를 대규모로 구현하고 심지어 일부 영역에서 초과했다"고 합니다.

Open Minis는 또 다른 ChatGPT 래퍼 앱이 아닙니다. 핵심 차별화는 다음과 같습니다: AI 모델에 진정한 컴퓨터를 제공 — 모바일 디바이스에서 실행되는 완전한 Linux 환경, 브라우저 자동화, 심층 디바이스 통합, 확장 가능한 스킬 시스템을 갖추고 있습니다.

온디바이스 AI Agent가 다음 전장인 이유

클라우드 Agent의 한계

현재 주류 AI Agent 프레임워크 — DeerFlow, CrewAI, AutoGen 모두 — 는 클라우드 서버에서 실행됩니다. 이 아키텍처에는 몇 가지 근본적인 제한이 있습니다:

  1. 개인정보 경계: 사용자의 건강 데이터, 캘린더, 연락처, 사진이 Agent가 처리할 수 있도록 클라우드에 업로드되어야 합니다
  2. 지연 문제: 각 상호작용은 네트워크 왕복이 필요하여 즉각적인 응답을 불가능하게 합니다
  3. 오프라인 사용 불가: 비행기, 지하철, 신호가 약한 지역에서는 Agent가 완전히 마비됩니다
  4. 선형적으로 증가하는 비용: 각 사용자의 각 호출은 클라우드 컴퓨팅 파워를 소모하며, 규모가 클수록 비용이 높아집니다

온디바이스 Agent의 구조적 이점

Open Minis가 대표하는 온디바이스 AI 아키텍처는 위의 모든 문제를 해결합니다:

차원 클라우드 Agent Open Minis (온디바이스)
데이터 개인정보 데이터가 디바이스를 떠남 모두 로컬에서 처리
지연 100-500ms 네트워크 왕복 <10ms 로컬 호출
오프라인 능력 완전히 사용 불가 핵심 기능 사용 가능
디바이스 통합 추가 API 연결 필요 네이티브 심층 통합
비용 모델 토큰당 선형 증가 일회성 개발, 한계 비용 0에 수렴
시스템 권한 API 범위로 제한 완전한 디바이스 능력

이것은 클라우드 Agent에 가치가 없다는 의미가 아닙니다 — 복잡한 추론 작업, 대규모 데이터 처리는 여전히 클라우드 컴퓨팅 파워가 필요합니다. 하지만 일상적인 개인 비서 시나리오의 경우, 온디바이스 Agent는 개인정보, 지연, 사용자 경험에서 구조적 이점이 있습니다.

핵심 아키텍처 분석: iOS와 Android 듀얼 플랫폼 구현

전체 아키텍처

Open Minis의 코드베이스는 명확하게 구조화되어 있습니다:

src/ios/          iOS 앱 (Swift / SwiftUI) + Share Extension + Widget + File Provider
src/android/      Android 앱 (Kotlin / Compose) + JNI 네이티브 코드
src/shared/       듀얼 플랫폼 공유 리소스
deps/             네이티브 의존성 빌드 스크립트 및 벤더 소스 코드
docs/specs/       아키텍처 및 인터페이스 사양
scripts/          루트 파일 시스템 준비 및 개발자 도구

프로젝트는 GPLv3 라이선스를 사용합니다. GPLv3의 iSH(iOS)와 GPLv2의 PRoot(Android)를 링크했기 때문입니다.

핵심 혁신: 디바이스 내 Linux 샌드박스

Open Minis의 가장 핵심적인 기술적 돌파는 모바일 디바이스 내에서 완전한 Linux 환경을 실행하는 것입니다. 이것은 단순한 터미널 에뮬레이터가 아니라, 완전히 기능하는 샌드박스 운영체제입니다.

iOS 측: iSH 프로젝트의 ARM64 포크를 기반으로 합니다. iSH는 Linux 사용자 모드 시뮬레이션을 구현하고 iOS에서 Alpine Linux를 실행합니다. Agent는 패키지를 설치하고, 스크립트를 실행하고, 실제 파일을 조작할 수 있습니다.

Android 측: PRoot의 사용자 공간 chroot를 기반으로 합니다. PRoot는 root 권한 없이 격리된 Linux 환경을 생성하며, 마찬가지로 Alpine Linux를 실행합니다.

빌드 과정은 상당히 복잡합니다 — 첫 빌드는 30-60분이 소요됩니다. 모든 네이티브 의존성이 소스 코드에서 컴파일되기 때문입니다:

BASH
# iOS 빌드 순서가 중요합니다: FFmpeg가 LAME와 링크
./deps/build_lame.sh          # LAME 3.100 정적 라이브러리
./deps/build_ffmpeg.sh        # FFmpeg 6.1.2 프레임워크 번들
./deps/build_ish.sh           # iSH 커널 라이브러리
./deps/prepare_alpine_rootfs.sh   # Alpine aarch64 minirootfs

# Android는 NDK r28+가 필요
./deps/build_proot.sh && ./scripts/prepare_android_sandbox.sh

스킬 시스템 (Skills)

Open Minis의 스킬 시스템은 확장성의 핵심입니다. 스킬은 SKILL.md 파일을 포함하는 폴더입니다 — 지시사항, 선택적 스크립트, 참고 자료 및 에셋을 포함합니다.

핵심 설계 결정: Open Minis는 전용 스킬 작성을 요구하지 않습니다. Claude Code, Codex, OpenClaw 또는 Hermes Agent를 위해 구축된 스킬은 일반적으로 Minis에서 직접 실행할 수 있습니다. Minis 도구 환경에 적응된 스킬은 더 잘 실행됩니다 — Linux 셸, 디바이스 통합 및 네이티브 오프로드에 직접 액세스할 수 있기 때문입니다.

MARKDOWN
# 예시 SKILL.md 구조
---
name: health-analyzer
description: 건강 데이터를 분석하고 보고서 생성
triggers: [건강, 운동, 수면]
---

## 지시사항
사용자가 건강 데이터를 물을 때:
1. HealthKit/Google Fit API를 통해 데이터 가져오기
2. Linux 샌드박스에서 분석 스크립트 실행
3. Markdown 형식 보고서 생성

## 스크립트
- scripts/analyze.py: 데이터 분석 메인 스크립트
- scripts/export_health.sh: 데이터 내보내기 도구

스킬 저장소 OpenMinis/MinisSkills에는 이미 TTS, 검색, 미디어 다운로드, 건강 분석, 클라우드 API 등 다양한 스킬이收录되어 있습니다.

디바이스 통합 레이어

Open Minis는 디바이스 능력을 Agent가 호출할 수 있는 도구로 노출합니다:

통합 항목 iOS 구현 Android 구현
건강 데이터 HealthKit Google Fit / Health Connect
캘린더 EventKit Android Calendar Provider
알림 Reminders AlarmManager
연락처 Contacts framework ContactsContract
스마트 홈 HomeKit 미구현
블루투스 CoreBluetooth BluetoothAdapter
클립보드 UIPasteboard ClipboardManager
단축어 Shortcuts app 미구현

이러한 심층 통합은 Agent가 단순히 채팅하는 것이 아니라, 실제로 사용자의 디바이스를 조작할 수 있음을 의미합니다. 사진을 찍어 음식을 인식하고 영양 데이터를 기록하고, Telegram 그룹에서 작업을 추출하여 알림에 쓰고, 웹 콘텐츠를 캘린더 이벤트로 정리합니다.

네이티브 오프로드 (Native Offloads)

무거운 계산이나 플랫폼별 작업은 샌드박스 내에서 실행되는 대신 네이티브 코드로 오프로드됩니다. 여기에는 다음이 포함됩니다:

  • 미디어 처리: FFmpeg와 LAME이 네이티브 프레임워크로 컴파일되어 MP3 인코딩, 비디오 트랜스코딩이 직접 네이티브 레이어에서 수행
  • 토큰화: 중국어 토큰화 라이브러리 cppjieba가 네이티브 라이브러리로 컴파일
  • 수학 렌더링: KaTeX 네이티브 렌더링
  • 음성 인식: RealTimeCutVADLibrary가 실시간 음성 활동 감지 구현

이러한 하이브리드 아키텍처는 Open Minis가 샌드박스 보안을 유지하면서 성능에 중요한 경로의 효율성을 희생하지 않도록 합니다.

온디바이스 AI의 기술적 과제와 해결책

과제 1: 모델 추론의 컴퓨팅 파워 제한

모바일 디바이스는 70B 파라미터의 대규모 모델을 실행할 수 없습니다. Open Minis의 해결책은 Bring Your Own Model (BYOM)입니다:

  • Claude, GPT, Gemini 등 주류 제공업체 지원
  • 사용자가 자체 API 키 또는 계정 로그인을 가져옴
  • 추론은 클라우드에서 수행되지만, 데이터는 디바이스 로컬에서 처리

이것은 순수한 "온디바이스 추론"이 아니라 "온디바이스 오케스트레이션"입니다 — Agent의 오케스트레이션 로직은 로컬에 있고, 추론은 클라우드 컴퓨팅 파워를 빌릴 수 있습니다. 이러한 실용적인 아키텍처는 기능과 실현 가능성의 균형을 맞춥니다.

과제 2: 메모리 및 스토리지 관리

Linux 샌드박스는 추가 메모리와 스토리지 공간이 필요합니다. Open Minis의 전략:

  • Alpine Linux minirootfs: 최소화된 루트 파일 시스템, 필수 도구만 포함
  • 온디맨드 설치: Agent는 샌드박스 내에서 apk add를 사용하여 필요한 패키지 설치 가능
  • 작업 공간 격리: 다른 작업은 독립적인 작업 공간을 사용하며, minis://workspace/로 주소 지정

과제 3: 배터리 및 열 관리

지속적인 Agent 활동은 배터리를 소모하고 열을 발생시킵니다. Open Minis는 다음 방법으로 완화합니다:

  • 네이티브 오프로드: 무거운 계산은 네이티브 코드를 통해 샌드박스 내 실행보다 효율적
  • 백그라운드 제한: iOS와 Android의 시스템 제한이 자연스럽게 과도한 백그라운드 활동을 방지
  • 사용자 제어: 사용자는 Agent의 활동 권한 및 트리거 조건을 설정 가능

과제 4: 보안 샌드박스 탈출

디바이스에서 완전한 Linux 환경을 실행하면 보안 위험이 발생합니다. Open Minis의 다층 방어:

  • 사용자 모드 시뮬레이션: iSH와 PRoot 모두 커널 권한이 필요하지 않아 하드웨어에 직접 액세스할 수 없음
  • 파일 시스템 격리: 샌드박스의 파일 시스템은 메인 시스템과 격리됨
  • 네트워크 권한 제어: Agent의 네트워크 액세스는 앱 권한의 제약을 받음
  • 오픈소스 감사: 완전한 코드가 오픈소스이므로 보안 커뮤니티가 검토 가능

클라우드 Agent와 비교

기능 DeerFlow CrewAI Open Minis
실행 환경 클라우드 서버 클라우드 서버 모바일 디바이스
프로그래밍 언어 Python Python Swift/Kotlin
멀티 Agent 협력 ✅ 지원 ✅ 핵심 기능 ❌ 단일 Agent
디바이스 통합 ❌ 없음 ❌ 없음 ✅ 심층 통합
오프라인 능력 ❌ 사용 불가 ❌ 사용 불가 ✅ 핵심 기능 사용 가능
개인정보 보호 ❌ 데이터 클라우드 ❌ 데이터 클라우드 ✅ 로컬 처리
복잡한 추론 ✅ 강력 ✅ 강력 ⚠️ 외부 모델에 의존
배포 복잡도 중간 중간 높음 (네이티브 의존성 컴파일 필요)

Open Minis는 클라우드 Agent 프레임워크를 대체하려는 것이 아니라, 개인 비서 시나리오에서 더 나은 해결책을 제공합니다. 멀티 Agent 협력, 대규모 데이터 처리가 필요한 시나리오의 경우, DeerFlow 또는 CrewAI가 여전히 더 나은 선택입니다.

오픈소스 코드 구조 심층 분석

iOS 아키텍처

src/ios/
├── Minis.xcodeproj/          # Xcode 프로젝트 설정
├── Minis/                    # 메인 앱
│   ├── App/                  # 앱 진입점 및 수명 주기
│   ├── Views/                # SwiftUI 뷰
│   ├── Models/               # 데이터 모델
│   ├── Services/             # 비즈니스 로직 서비스
│   ├── Agent/                # Agent 핵심 로직
│   │   ├── Runtime/          # 런타임 환경
│   │   ├── Tools/            # 도구 정의
│   │   └── Skills/           # 스킬 로더
│   └── Integrations/         # 디바이스 통합
│       ├── HealthKit/
│       ├── Calendar/
│       └── Shortcuts/
├── MinisShare/               # Share Extension
├── AgentWidgetExtension/     # Widget
└── MinisFileProvider/        # File Provider

iOS 측은 Swift 6.0과 SwiftUI를 사용하며, 대상 버전은 iOS 26.2입니다. 프로젝트에는 여러 타겟이 포함되어 있습니다: 메인 앱, Share Extension(다른 앱의 공유를 수신하기 위해), Widget 및 File Provider.

Android 아키텍처

src/android/
├── app/                      # 메인 앱 모듈
│   ├── src/main/
│   │   ├── java/             # Kotlin 코드
│   │   │   └── app/openminis/
│   │   │       ├── ui/       # Compose UI
│   │   │       ├── agent/    # Agent 핵심
│   │   │       ├── sandbox/  # PRoot 샌드박스 관리
│   │   │       └── tools/    # 도구 및 디바이스 통합
│   │   └── jni/              # JNI 네이티브 코드
│   └── build.gradle.kts
└── buildSrc/                 # 빌드 설정

Android 측은 Kotlin과 Jetpack Compose를 사용하며, JDK 17입니다. JNI 레이어는 PRoot 샌드박스의 네이티브 상호작용을 처리합니다.

크로스 플랫폼 공유

src/shared/에는 듀얼 플랫폼이 공유하는 리소스가 포함되어 있지만, 핵심 로직은 각 플랫폼에서 독립적으로 구현됩니다. 이러한 "공유 리소스, 독립 로직" 전략은 React Native나 Flutter와 같은 크로스 플랫폼 프레임워크보다 심층 시스템 통합이 필요한 앱에 더 적합합니다.

개발자가 Open Minis를 기반으로 자체 모바일 Agent를 구축하는 방법

빠른 시작

BASH
# 저장소 복제 (하위 모듈 포함)
git clone --recurse-submodules https://github.com/OpenMinis/OpenMinis.git
cd OpenMinis

# iOS 빌드
./deps/build_lame.sh && ./deps/build_ffmpeg.sh
./deps/build_ish.sh && ./deps/prepare_alpine_rootfs.sh
open src/ios/Minis.xcodeproj

# Android 빌드
./deps/build_proot.sh && ./scripts/prepare_android_sandbox.sh
cd src/android && ./gradlew :app:assembleDebug

사용자 정의 스킬 개발

  1. SKILL.md를 포함하는 스킬 폴더 생성
  2. 트리거 조건 및 지시사항 정의
  3. 선택적으로 스크립트 및 참고 자료 추가
  4. MinisSkills 저장소에 제출

빌드 설정

첫 빌드 전에 설정 템플릿을 복사해야 합니다:

BASH
cp src/ios/Configs/ProviderCustomization.xcconfig.example \
   src/ios/Configs/ProviderCustomization.xcconfig

cp src/android/app/provider-customization.properties.example \
   src/android/app/provider-customization.properties

비워두면 컴파일하여 실행할 수 있습니다 — API 키 방식의 로그인은 사용자 정의 설정이 필요하지 않습니다.

실제 사용 시나리오 및 사용자 경험

커뮤니티 피드백과 공식 문서를 기반으로, Open Minis의 고빈도 사용 시나리오:

영양 추적: 사진을 찍어 음식을 인식하고, 칼로리와 다량 영양소를 추정하고, 자동으로 Apple Health에 기록합니다.

모닝 브리핑: Shortcuts가 Minis를 트리거하여 X 타임라인을 가져오고, 요약을 생성하고, 음성을 합성하고, 알람으로 재생합니다.

작업 추출: Telegram 그룹에서 메시지를 가져오고, 버그와 액션 항목을 추출하고, 중복을 제거한 후 Apple Reminders에 기록합니다.

노트 관리: Obsidian vault를 마운트하고, 연구하고, 정리하고, Markdown 노트를 다시 기록합니다.

캘린더 이벤트: iOS Share Sheet를 통해 어떤 콘텐츠든 Minis에 공유하고, 시간과 장소를 포함한 캘린더 이벤트를 자동으로 생성합니다.

사용자 평가는 일반적으로 긍정적입니다 — "이것은 최근 몇 년간 사용한 최고의 앱일 수 있습니다. 매일 새로운 가능성을 탐색하고 있습니다", "훌륭한 제품! 경험이 매끄럽습니다!".

한계 및 향후 방향

현재 한계

  1. PR 미지원: 저장소는 비공개 개발 트리의 미러이며, Pull Request를 받지 않고, Issue를 통해서만 피드백 가능
  2. 첫 빌드 복잡: 30-60분의 컴파일 시간, 여러 네이티브 의존성을 순서대로 빌드해야 함
  3. 순수 온디바이스 추론 아님: 여전히 클라우드 모델 API에 의존, 진정한 온디바이스 추론이 아님
  4. 플랫폼 차이: 일부 기능(HomeKit, 단축어 등)은 iOS만 지원, Android 측은 기능이 적음
  5. GPLv3 라이선스: 상업적 사용에 제한이 있음

향후 방향

  • 더 많은 네이티브 오프로드: 더 많은 무거움 계산을 네이티브 코드로 이전
  • Android 기능 보충: HomeKit 대응물, 단축어 대안
  • 스킬 생태계 확장: 더 많은 커뮤니티 기여 스킬
  • 멀티 Agent 협력: DeerFlow와 유사한 멀티 Agent 아키텍처 도입 가능성
  • 온디바이스 소형 모델 지원: Phi-3, Gemma 등 소형 로컬 모델 통합

종합 평가

Open Minis는 모바일 AI Agent의 성숙한 아키텍처를 대표합니다. 단순한 모델 래퍼가 아니라, 완전한 온디바이스 컴퓨팅 플랫폼입니다 — AI에 진정한 컴퓨터를 제공하여 파일 시스템을 조작하고, 웹을 탐색하고, 디바이스 능력을 통합할 수 있게 합니다.

장점: - 진정한 온디바이스 Agent, 개인정보 및 지연 이점이 명확 - 채팅 봇의 범위를 넘어선 심층 디바이스 통합 - 기존 Agent 생태계와 호환되는 확장 가능한 스킬 시스템 - 완전 오픈소스, 커뮤니티가 감사하고 기여 가능

단점: - 빌드 복잡도가 높고, 초보자에게 진입 장벽이 가파름 - 여전히 클라우드 모델에 의존, 순수 온디바이스 추론이 아님 - PR을 받지 않는 오픈소스 방식이 다소 비관습적

누구에게 적합한가: - 개인정보를 중시하는 개인 AI 비서 사용자 - 모바일 Agent를 심층적으로 커스터마이징하려는 개발자 - 온디바이스 AI 아키텍처에 관심 있는 연구자

Open Minis는 한 가지를 증명합니다: AI 시대에 기술 설계와 코드는 더 이상 제품 우위가 아닙니다. 최고의 Agent는 사용자와의 긴밀한 피드백 루프에서 나옵니다 — 그들의 기대와 보고서가 제품으로 수렴되는 힘입니다. 이것이 바로 팀이 완전 오픈소스를 선택한 이유입니다 — 커뮤니티가 함께 제품의 미래를 형성하도록.


참고 링크: - GitHub 저장소: https://github.com/OpenMinis/OpenMinis - 공식 웹사이트: https://openminis.app - 스킬 저장소: https://github.com/OpenMinis/MinisSkills - AwesomeMinis: https://github.com/OpenMinis/AwesomeMinis