OpenMinis는 핵심 기능이 채팅창이 아니라 구조 자체에 있는 드문 모바일 앱입니다. iPhone 안에 완전한 Alpine Linux 셸을 올려 두고, 모델이 그 셸을 조작하게 합니다. 실제로 안에 무엇이 들어 있는지 살펴보겠습니다.
OpenMinis 안에는 무엇이 들어 있나: ARM64 iSH 포크, PRoot, iPhone API 브리지
OpenMinis는 일반 iPhone 앱 안에서 로컬 Alpine Linux 작업 공간을 부팅하는 오픈소스 온디바이스 AI 에이전트 앱으로, 2026년 7월 GNU GPL v3.0으로 공개되었습니다 . 기술적으로 새로운 지점은 제공 방식입니다. App Store의 기본 iSH가 사용하는 느린 x86 유저모드 에뮬레이터 대신, OpenMinis는 ARM64 iSH 포크를 내장하고 Alpine minirootfs를 부팅합니다. 그래서 스크립트, apk 설치, 실제 파일 실행이 서버 없이 앱 샌드박스 안에서 로컬로 동작합니다 .
짧게 답하면: OpenMinis는 무료 GPLv3 오픈소스 iPhone 앱(2026년 7월)으로, Alpine Linux를 부팅하는 ARM64 iSH 포크를 완전히 온디바이스로 실행합니다. apk, Python, Node, git, SSH를 갖춘 실제 POSIX 셸이며, 어떤 모델이든(Claude, GPT, Gemini, OpenRouter) 텍스트 명령으로 조작할 수 있습니다.
Android에서는 실제 Linux 유저랜드가 존재하므로, OpenMinis는 같은 Alpine rootfs 위에 사용자 공간 chroot를 제공하기 위해 PRoot를 사용합니다. 배포는 Play Store 등록 없이 GitHub Releases APK로 이뤄지며, Termux가 자리 잡은 것과 같은 사이드로드 방식입니다 . 두 번째로 새로운 부분은 Apple 프레임워크 브리지입니다. iOS 샌드박싱 때문에 Linux 프로세스가 네이티브 API에 직접 접근할 수 없으므로, OpenMinis는 Health, Calendar, Reminders, Contacts, HomeKit, Bluetooth, Clipboard, Media, Alarms 같은 기기 기능을 셸에서 호출할 수 있는 CLI로 노출합니다. 덕분에 샌드박스 안의 모델이 텍스트를 통해 휴대폰을 "조작"할 수 있습니다 .
| 계층 | iOS | Android |
|---|---|---|
| Linux 제공 방식 | ARM64 iSH 포크 + Alpine minirootfs | PRoot chroot + 동일한 Alpine rootfs |
| 배포 | App Store + TestFlight 베타 | GitHub Releases APK(Play Store 없음) |
| 네이티브 브리지 | EventKit/HomeKit/MusicKit을 CLI로 제공 | 공유 skill/CLI 계층 |
모델도 여러 개를 지원합니다. Claude, GPT, Gemini, OpenRouter 또는 OpenAI 호환 엔드포인트를 대화별로 전환해 사용할 수 있으며, API 키는 기기 Keychain에 저장되고 분석 기능은 없다고 밝히고 있습니다 . MacStories의 Federico Viticci는 2026년 7월 리뷰에서 이를 "the most impressive indie app"이라고 평가했습니다 .
사이드로드 전에 필요한 것: Xcode 16.3, NDK r28, Meson, Ninja

OpenMinis를 반드시 직접 컴파일할 필요는 없습니다. iSH와 PRoot에서 이어받은 GPLv3 코드를 패키징하므로 전체 툴체인은 BUILDING.md에 공개되어 있습니다. 다만 소스 빌드는 무겁습니다. 모든 네이티브 의존성을 불투명한 바이너리로 넣는 대신 직접 컴파일하며, 첫 빌드에는 30–60 minutes가 걸립니다. 무엇보다 먼저 --recurse-submodules로 클론해야 합니다. 그렇지 않으면 서브모듈 소스가 빠집니다.
iOS 빌드 경로에는 Xcode 16.3 or later와 실제 기기 테스트용 Apple Developer 계정이 필요합니다. 호스트 도구는 brew install ninja llvm libarchive pkg-config로 설치한 뒤 pip3 install meson을 실행합니다. 이후 빌드는 순서가 중요하고 조용히 실패하기 쉬운 다음 체인을 따릅니다.
build_lame.sh— LAME 3.100build_ffmpeg.sh— FFmpeg 6.1.2, LGPL configbuild_ish.sh— ARM64 iSH 포크prepare_alpine_rootfs.sh— Alpineminirootfs
순서가 중요합니다. 문서에서는 FFmpeg가 LAME에 링크되므로 LAME을 먼저 빌드하지 않으면 오류 메시지 없이 MP3 인코딩이 조용히 빠진다고 경고합니다 . Android 경로에는 JDK 17, the Android SDK (compileSdk 36 / targetSdk 35 / minSdk 26), NDK r28+, and CMake 3.22.1이 필요합니다. ./gradlew :app:assembleDebug 전에 build_proot.sh와 prepare_android_sandbox.sh를 실행합니다.
대부분의 개발자에게 컴파일은 선택 사항입니다. iPhone에서 가장 빠른 방법은 TestFlight 베타이며, 이는 receives fixes ahead of reviewed App Store releases합니다. Android에서는 미리 빌드된 GitHub Releases APK를 쓰면 되며, 어느 쪽도 소스 컴파일이 필요하지 않습니다.
iPhone에서 사이드로드하거나 Android APK 받는 방법

iPhone에서는 OpenMinis GitHub page에 연결된 TestFlight 베타를 이용하는 것이 가장 빠릅니다. 최신 버전이 올라오고, 심사를 거친 App Store 빌드보다 먼저 수정 사항을 받습니다. App Store release는 대략 한 번의 심사 주기만큼 늦지만 개발자 계정 없이 설치할 수 있으며, 두 채널 모두 무료입니다. Android에는 Play Store 등록이 없습니다. 가져온 코드를 실행하는 Termux 계열 도구는 Google Play 배포가 까다롭기 때문입니다. 그래서 GitHub Releases에서 APK를 직접 내려받고 알 수 없는 출처의 설치를 허용해야 합니다.
첫 실행에서 하는 일은 컴파일이 아니라 설정입니다. Settings를 열고 원하는 엔드포인트의 API 키를 붙여 넣으세요. Claude, GPT, Gemini, OpenRouter 또는 OpenAI 호환 URL이면 됩니다. 키는 기기 Keychain에 저장되며 OpenMinis 서버로 전송되지 않고, 대화마다 모델을 바꿀 수 있습니다 . 세션을 시작하는 데 계정 가입은 필요하지 않습니다.
에이전트를 확장하려면 skills 저장소를 클론한 뒤 앱이 로컬 디렉터리를 보게 하면 됩니다.
- Clone OpenMinis/MinisSkills를 클론하세요. 이 저장소에는 커뮤니티 스킬이 50개 이상 포함되어 있습니다 .
- Pick what you need — 예를 들어
tavily-search,health-sleep-analysis,spotify-hub,pdf-converter가 있으며, 각각은SKILL.md와scripts/,references/로 구성됩니다. - Load on demand — 앱이 로컬 폴더를 가리키게 해 필요할 때 불러오세요. Claude, Codex, OpenClaw, Hermes Agent용으로 작성된 스킬과 호환됩니다.
iSH 에뮬레이션 속도, rootfs 해시, 그리고 2.5.2 조항

OpenMinis에서 아직 검증이 부족한 부분은 성능과 출처이며, 실제 업무에 맡기기 전에는 둘 다 중요합니다. ARM64 iSH 포크는 Alpine minirootfs를 부팅하고 기본 iSH에 들어 있는 느린 유저모드 x86 에뮬레이터 대신 네이티브 명령을 실행하므로, 스크립트와 apk 설치가 기기에서 더 빠르게 실행됩니다 . 하지만 2026년 8월 기준 Termux 릴레이나 클라우드 VPS와 비교한 독립 벤치마크는 아직 없습니다 . “빠른 폰 에이전트”라는 설명은 재현 가능한 수치가 아니라 1차 자료의 메모와 초기 리뷰어 반응에 기대고 있습니다.
공급망도 같은 수준의 의심이 필요합니다. prepare_alpine_rootfs.sh 스크립트는 Alpine 미러에서 minirootfs 아티팩트를 가져오며, 공개 버전은 가져온 아카이브별 암호학적 해시를 고정하지 않습니다 . 이것이 변조의 증거는 아니지만, 직접 해시 검사를 추가하고 버전을 고정하며 빌드 출처를 기록하기 전까지는 provenance가 일부 미검증 상태로 남습니다.
정책상 걸리는 부분도 있습니다. App Store Review Guideline 2.5.2는 앱이 자체 동작을 바꾸는 코드를 다운로드해 실행하는 것을 제한하며, 터미널과 에이전트 앱은 회색지대에 놓여 있습니다 . 따라서 심사를 통과한 App Store 바이너리가 공개 소스와 일치하는지는 아직 열린 질문입니다. 이 저장소는 이슈는 받지만 pull request는 받지 않습니다 . rootfs 해시 고정, 서명된 릴리스 provenance, sandbox 경계가 독립적으로 확인되기 전까지 OpenMinis는 실험적인 도구로 보는 편이 좋습니다.
MinisSkills와 폰+VPS 하이브리드 조합
OpenMinis는 SKILL.md 시스템으로 확장됩니다. YAML frontmatter(name, description)와, 모델이 대화별로 필요할 때 불러오는 Markdown 지침으로 이루어진 방식입니다. 이 형식은 Claude, Codex, OpenClaw, Hermes Agent용으로 작성된 스킬과 명시적으로 호환됩니다 . 그래서 기존 스킬 라이브러리를 다시 작성하지 않고 옮겨 쓸 수 있습니다. 함께 제공되는 MinisSkills 저장소에는 50개 이상의 커뮤니티 기여가 포함되어 있습니다. free-tts, youtube-music-hub, notion-hub, spotify-hub, health-sleep-analysis 등이 있으며, 각 스킬은 scripts/, references/, assets/, 선택적 evals/ 디렉터리 구조로 배치됩니다 .
연산이 무거운 작업에는 여전히 릴레이가 유리합니다. Pieter Levels가 2026년 7월 8일 소개한 구성, 즉 VPS의 Claude Code, iPhone의 Termius, 그리고 연결을 위한 Tailscale과 SSH/tmux 조합은 폰이 I/O와 승인만 맡으면 되는 상황에서 여전히 실용적인 패턴입니다 . OpenMinis가 제자리를 찾는 곳은 그 반대편입니다. 릴레이를 세우기 어려운 상황에서 오프라인, 개인정보 민감, 경량 자동화를 처리하는 경우입니다.
둘은 서로 배타적이지 않습니다. OpenMinis의 Alpine 셸에서 Tailscale을 통해 원격 머신으로 ssh 접속할 수 있습니다. 별도 앱 없이 기기 내 오케스트레이션과 클라우드급 연산을 필요할 때 함께 쓰는 방식입니다 . 핵심은 간단합니다. 로컬에서 검토 가능한 폰 자동화에는 OpenMinis를 쓰고, 휴대폰이 감당하기 어려운 작업은 자체 셸을 통해 VPS로 넘기면 됩니다.
자주 묻는 질문
OpenMinis는 iSH와 같은 앱인가요?
아니요. OpenMinis는 iSH에서 파생됐지만, 느린 사용자 모드 x86 에뮬레이터를 실행하는 기본 App Store iSH 대신 Alpine minirootfs를 로컬에서 부팅하는 특화된 ARM64 iSH 포크를 포함합니다 . 그 셸 위에 다중 모델 LLM 통합(Claude, GPT, Gemini, OpenRouter), 네이티브 iPhone API 브리지, SKILL.md 확장 레이어를 더했습니다 . 범용 iPhone용 노트북 리눅스 대체제가 아니라, 에이전트 워크플로에 맞춰진 앱입니다.
iPhone의 OpenMinis 안에서 Claude Code를 실행할 수 있나요?
문서화되어 지원되는 방식으로는 아닙니다. Claude Code는 데스크톱과 서버 터미널용 npm 설치 CLI로 배포되며, 네이티브 iOS 실행용이 아닙니다. Anthropic도 네이티브 Android 설치 요청을 "not planned"로 종료했습니다(issue #10644, 2026-01-11) . 이론상 OpenMinis의 Alpine 셸 안에 npm을 설치할 수는 있을지 몰라도, 문서화되어 있지 않고 모바일 CPU, iOS 에뮬레이션 오버헤드, 백그라운드 실행 제한의 제약을 받습니다. 휴대폰 개발 머신으로 가는 길이라기보다 실험으로 보는 편이 맞습니다.
Termux와 VPS 릴레이 대신 OpenMinis를 선택해야 하는 이유는 무엇인가요?
오프라인, 개인정보 우선, iPhone 단독 자동화가 필요할 때 OpenMinis를 선택하세요. Android의 Termux는 폭넓은 패키지 호환성과 장시간 실행 데몬에 더 성숙하고 자유도가 높으며, Termux/Termius + Tailscale + SSH로 VPS에 릴레이하는 방식은 연산량이 큰 작업에 더 빠릅니다 . 하지만 iPhone에는 잘 알려진 대로 "no Termux"이고, 릴레이 방식은 클라우드 연결이 필요합니다 . OpenMinis는 연결이 없거나 원치 않을 때 그 릴레이 구성을 하나의 샌드박스형 로컬 오픈소스 앱으로 접어 넣습니다.
OpenMinis 공급망은 감사할 수 있나요?
들여다볼 수는 있지만, 간단히 감사할 수 있는 수준은 아닙니다. 저장소는 GNU GPL v3.0으로 공개되어 있습니다 . 하지만 실제 감사 범위는 Swift/Objective-C 레이어보다 훨씬 넓습니다. 셸 스크립트, 서브모듈, 미러 다운로드, Xcode 권한 설정, Alpine 내부 런타임 apk 설치까지 확인해야 합니다 . 현재 공개 버전의 Alpine rootfs 스크립트는 강하게 고정된 암호학적 검증 없이 Alpine 미러에서 원격 아티팩트를 가져옵니다 . 로컬에서 빌드한 바이너리를 재현 가능한 것으로 신뢰하기 전에 해시 검증과 버전 고정을 추가해야 합니다.
iPhone API 브리지는 실제로 어떻게 작동하나요?
iOS 샌드박스는 Linux 프로세스가 네이티브 프레임워크를 직접 호출하지 못하게 막기 때문에, OpenMinis는 샌드박스 안의 모델 하니스가 셸 명령으로 호출할 수 있는 명령줄 도구 형태로 기기 기능을 노출합니다 . Health, Calendar, Reminders, Contacts, HomeKit, Bluetooth, Clipboard, Media, Alarms 같은 네이티브 API는 EventKit, MusicKit, HomeKit 같은 프레임워크를 바탕으로 일반 모델이 텍스트에서 호출할 수 있는 CLI로 제공됩니다 . 이렇게 iPhone 기능을 POSIX 환경으로 터널링해, 모델이 일반 명령으로 휴대폰을 "조작"할 수 있게 합니다.
이 글이 도움이 되셨다면, 새 글이 올라올 때마다 이메일로 받아보세요.