{"id":43222544,"url":"https://github.com/cofficlab/lumi","last_synced_at":"2026-05-07T02:06:57.476Z","repository":{"id":335784986,"uuid":"1135511143","full_name":"CofficLab/Lumi","owner":"CofficLab","description":"An intelligent macOS assistant","archived":false,"fork":false,"pushed_at":"2026-04-05T08:36:38.000Z","size":23599,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T10:22:14.166Z","etag":null,"topics":["macos","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CofficLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-16T07:44:40.000Z","updated_at":"2026-04-05T08:36:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/CofficLab/Lumi","commit_stats":null,"previous_names":["cofficlab/lumi"],"tags_count":88,"template":false,"template_full_name":null,"purl":"pkg:github/CofficLab/Lumi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CofficLab%2FLumi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CofficLab%2FLumi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CofficLab%2FLumi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CofficLab%2FLumi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CofficLab","download_url":"https://codeload.github.com/CofficLab/Lumi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CofficLab%2FLumi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["macos","swiftui"],"created_at":"2026-02-01T09:09:55.824Z","updated_at":"2026-05-07T02:06:57.469Z","avatar_url":"https://github.com/CofficLab.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lumi\n\nLumi is an AI-powered personal desktop assistant application for macOS.\n\n📖 [中文版](README_zh.md) | English\n\n[![Swift](https://img.shields.io/badge/Swift-5.9+-orange.svg)](https://swift.org)\n[![macOS](https://img.shields.io/badge/macOS-13.0+-blue.svg)](https://developer.apple.com/macos/)\n[![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)\n\n![Lumi Application](docs/hero2.png)\n\n## 🏗️ Architecture\n\n### Application Architecture\n\n```mermaid\ngraph BT\n    subgraph \"Lumi App\"\n        subgraph \"Core Layer\"\n            A1[Bootstrap\u003cbr/\u003eApp Launch]\n            A2[Services\u003cbr/\u003eLLM/Tools/Tasks]\n            A3[Models \u0026 Entities\u003cbr/\u003eData Models]\n            A4[Views \u0026 ViewModels\u003cbr/\u003eViews \u0026 State]\n            A5[Middleware\u003cbr/\u003eMiddleware System]\n            A6[Contact\u003cbr/\u003ePlugin Protocol]\n        end\n        \n        subgraph \"Plugins Layer\"\n            B1[Agent Tools\u003cbr/\u003eFileTree/Terminal/MCP]\n            B2[System Management\u003cbr/\u003eCPU/Memory/Disk]\n            B3[Dev Tools\u003cbr/\u003eDatabase/Docker/Brew]\n            B4[Productivity\u003cbr/\u003eClipboard/Text]\n        end\n        \n        subgraph \"UI Layer\"\n            C1[Themes\u003cbr/\u003eTheme System]\n            C2[DesignSystem\u003cbr/\u003eDesign System]\n        end\n    end\n    \n    A6 --\u003e B1\n    A6 --\u003e B2\n    A6 --\u003e B3\n    A6 --\u003e B4\n    A2 --\u003e B1\n    C1 --\u003e C2\n```\n\n### Plugin System\n\n- **SuperPlugin Protocol**: Base protocol for all plugins, defining lifecycle and UI contribution points\n- **Extension Points**: Navigation bar, toolbar, status bar, settings page, Agent views, etc.\n- **Middleware**: Intercept and modify message sending, conversation turns, and other events\n- **Agent Tools**: Plugins can register custom tools for AI invocation\n\n### AI/Agent Workflow\n\n```mermaid\nsequenceDiagram\n    participant U as User\n    participant M as Middleware\n    participant L as LLM Service\n    participant T as Tool Coordinator\n    participant E as Tool Executor\n    \n    U-\u003e\u003eM: Input Request\n    M-\u003e\u003eM: Preprocessing\n    M-\u003e\u003eL: Send Request\n    L--\u003e\u003eM: Streaming Response\n    alt Tool Invocation Needed\n        L-\u003e\u003eT: Tool Call Request\n        T-\u003e\u003eE: Execute Tool\n        E--\u003e\u003eT: Return Result\n        T-\u003e\u003eL: Result Feedback\n        L--\u003e\u003eM: Final Response\n    end\n    M-\u003e\u003eU: Display Result\n```\n\n- **LLMProvider Protocol**: Unified LLM interface supporting multiple providers\n- **ToolService**: Tool registration, discovery, and execution\n- **WorkerAgent**: Background task execution agent\n\n## 📋 Requirements\n\n- macOS 13.0+\n- Xcode 15.0+\n- Swift 5.9+\n\n## 🚀 Build \u0026 Run\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/Coffic/Lumi.git\ncd Lumi\n```\n\n### 2. Open in Xcode\n\n```bash\nopen Lumi.xcodeproj\n```\n\n### 3. Build and Run\n\n- Select the macOS target\n- Build (⌘B) and run (⌘R)\n\n### 4. Run Tests\n\nUse the checked-in helper script so local runs avoid the known third-party\nSwiftLint build-tool plugin failure from `CodeEditTextView` / `CodeEditSourceEditor`.\n\n```bash\n./scripts/test-lumi.sh\n```\n\n\n## 📄 License\n\nThis project is licensed under the GNU General Public License v3.0 - see [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcofficlab%2Flumi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcofficlab%2Flumi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcofficlab%2Flumi/lists"}