플러그인 시스템
Moraya는 내장 기능을 넘어 새로운 기능을 추가하기 위한 확장 가능한 플러그인 시스템을 지원합니다.
플러그인 매니페스트
각 플러그인에는 plugin.json 매니페스트 파일이 포함됩니다:
{
"id": "example-plugin",
"name": "Example Plugin",
"version": "1.0.0",
"apiVersion": "1.0",
"entry": {
"darwin-arm64": "bin/plugin-arm64",
"darwin-x64": "bin/plugin-x64",
"win32-x64": "bin/plugin.exe",
"linux-x64": "bin/plugin"
},
"permissions": ["editor:read", "editor:write"],
"sandboxLevel": "local"
}
샌드박스 레벨
플러그인은 세 가지 샌드박스 레벨 중 하나에서 실행됩니다:
| 레벨 | 런타임 | 네트워크 접근 | 설명 |
|---|---|---|---|
| sandbox | JavaScript | 없음 | 가장 제한적, 향후 JS 전용 플러그인 |
| local | 네이티브 바이너리 | 없음 | 네트워크 없는 네이티브 실행 |
| system | 네이티브 바이너리 | 있음 | 전체 접근 (명시적 사용자 승인 필요) |
권한
플러그인은 필요한 권한을 선언해야 합니다:
| 권한 | 설명 |
|---|---|
editor:read | 에디터 내용 읽기 |
editor:write | 에디터 내용 수정 |
ai:chat | AI 채팅 기능 접근 |
ai:image | AI 이미지 생성 접근 |
ai:voice | 음성 전사 접근 |
ai:voice:capture | 마이크 캡처 접근 |
net:external | 외부 네트워크 요청 수행 |
사용자는 설치 시 권한을 승인합니다. 플러그인은 선언된 권한을 초과할 수 없습니다.
플러그인 설치
ZIP 파일에서 설치
- 설정 (
Cmd+,) > 플러그인 탭을 엽니다 - **“Install from File”**을 클릭합니다
- 플러그인 ZIP 파일을 선택합니다
- Moraya가 매니페스트를 검증하고 SHA256 해시를 확인합니다
- 권한을 검토하고 설치를 확인합니다
URL에서 설치
- 설정 > 플러그인 탭을 엽니다
- **“Install from URL”**을 클릭합니다
- 플러그인 다운로드 URL과 예상 SHA256 해시를 입력합니다
- Moraya가 다운로드, 확인 및 설치합니다
플러그인 관리
설정의 플러그인 탭에서 다음을 제공합니다:
- 활성화/비활성화 — 개별 플러그인을 켜거나 끕니다
- 플러그인 세부 정보 — 이름, 버전, 권한 및 샌드박스 레벨을 확인합니다
- 제거 — 플러그인과 해당 데이터를 삭제합니다
- 데이터 격리 — 각 플러그인의 데이터는
{appDataDir}/plugins/{pluginId}/data/에 저장됩니다
통신
플러그인은 MCP 서버와 유사하게 stdio를 통한 JSON-RPC로 Moraya와 통신합니다. 보안을 위해 요청은 Tauri 백엔드를 통해 프록시됩니다.