🍊 Orange Intelligence
macOS를 위한 더 나은 Apple Intelligence 오픈 소스 버전
Orange Intelligence는 macOS를 위한 강력하고 완전히 커스터마이징 가능한 생산성 도구입니다. 우아한 플로팅 윈도우 (floating window) 인터페이스를 통해 어떤 애플리케이션에서도 텍스트를 원활하게 캡처, 처리 및 교체할 수 있습니다. 기본적인 텍스트 처리를 수행하든, OpenAI나 로컬 LLaMA와 같은 대규모 언어 모델 (LLMs)의 힘을 활용하든, 또는 복잡한 에이전트 (agent) 시스템을 구축하든, Orange Intelligence는 당신이 더 스마트하고, 빠르고, 효율적으로 일할 수 있도록 지원합니다.
🌟 왜 Orange Intelligence인가요?
Apple Intelligence는 폐쇄적이고 제한적이며 유연하지 않습니다. Orange Intelligence는 커스터마이징의 힘과 오픈 소스 혁신을 macOS에 가져와 개발자, 연구자 및 AI 애호가들에게 완벽한 생산성 도구가 되어줍니다.
데모 (Demo)
| 기능 | 데모 GIF |
|---|
| 변수 및 텍스트 처리 예시 | alt text |
| 로컬 Ollama를 활용한 LLMs | alt text |
✨ 주요 기능
- 플로팅 텍스트 프로세서 (Floating Text Processor):
Option 키를 두 번 탭하여 세련된 플로팅 윈도우를 엽니다.
- 모든 Python 함수 실행: 단순한 문자열 조작부터 고급 AI/LLM 통합 (OpenAI, 로컬 LLaMA 또는 사용자 정의 에이전트)에 이르기까지 모든 Python 코드를 실행할 수 있습니다.
- 완전한 커스터마이징 가능: 자신만의 Python 로직을 추가하여 기능을 확장하고 앱을 특정 워크플로우에 맞게 조정할 수 있습니다.
- 전역 변수 교체 (Global variable replacement): 전역 변수 교체 (단순한 복사 및 붙여넣기를 위해 더 이상 메모 앱을 열 필요가 없습니다!)
🛠️ 작동 방식
Orange Intelligence는 3단계 파이프라인을 통해 텍스트 처리를 단순화합니다:
-
모든 애플리케이션에서 텍스트 캡처
- 영리한 Applescript 트릭을 사용하여, 앱이 전역
Cmd+C를 시뮬레이션하여 활성 애플리케이션의 클립보드 내용을 가져옵니다.
-
텍스트 처리 (Process the Text)
- 플로팅 윈도우 (floating window)가 포커스된 상태로 열리며, 사용자가 실행할 Python 함수를 선택할 수 있습니다. 선택된 함수는 클립보드 텍스트를 처리합니다 (예: 포맷팅, AI 생성 등).
-
텍스트 교체 (Replace the Text)
- 처리가 완료되면 플로팅 윈도우가 닫히고, 포커스가 이전 앱으로 돌아가며, 전역
Cmd+V를 통해 업데이트된 콘텐츠를 앱에 다시 붙여넣습니다.
🚀 시작하기 (Getting Started)
사전 요구 사항 (Prerequisites)
-
Python 3.9+ 설치
-
의존성 관리를 위한 Poetry 설치:
-
권한 부여 (Grant Permissions): Python 인터프리터에 다음 권한이 있는지 확인하십시오:
- 손쉬운 사용 (Accessibility):
Cmd+V를 통해 텍스트를 교체할 수 있도록 허용합니다.
- 입력 모니터링 (Input Monitoring):
Option 키와 같은 전역 키 단축키를 감지할 수 있도록 허용합니다.
-
선택적 의존성 (Optional Dependencies):
- Ollama: 로컬 LLaMA 모델을 실행하려면 Ollama가 설치되어 실행 중인지 확인하십시오.
- 사용자 정의 설정(custom setup)을 사용하는 경우, 환경에 맞게 Python 코드를 수정해야 할 수도 있습니다.
-
선택적 설정 (Optional Configuration):
- 필요한 경우
config.py에서 로그 레벨 (log level)을 조정하십시오.
설치 (Installation)
-
이 리포지토리 (repository)를 클론(Clone)합니다:
git clone [https://github.com/sharingan-no-kakashi/orange-intelligence.git]
cd orange-intelligence
-
Poetry를 사용하여 의존성을 설치합니다:
-
Make를 사용하여 앱을 시작합니다:
(사용 가능한 다른 명령어를 보려면 make help를 사용하십시오.)
-
시스템 트레이 (system tray)에 **주황색 아이콘 (orange icon)**이 나타나면 앱을 사용할 준비가 된 것입니다.
사용법 (Usage)
- macOS 애플리케이션에서 아무 텍스트나 강조 표시(highlight)합니다.
Option 키를 두 번 탭하여 플로팅 윈도우를 띄웁니다.
- 강조 표시된 텍스트에 적용할 함수를 선택합니다.
🧩 커스터마이징 (Customization)
extensions 패키지에 호출 가능한 (callable) Python 객체를 정의하여 커스텀 로직을 추가할 수 있습니다.
extensions 패키지의 __init__.py 파일에 정의된 **모든 함수 (또는 호출 가능한 객체)**는 플로팅 윈도우(floating window)의 옵션으로 자동 표시됩니다.
예시:
def reverse_text(input_text):
return input_text[::-1]
📝 할 일 및 향후 개선 사항 (To-Do and Future Improvements)
현재 진행 중인 기능들은 다음과 같습니다:
-
커스텀 프롬프트 (Custom Prompts): 커스텀 프롬프트를 전달할 수 있는 기능을 추가합니다 (힌트: 코드에 **kwargs가 있는 이유입니다).
-
텍스트 플레이그라운드 (Text Playground): 텍스트 처리를 위한 새로운 커스텀 창을 열어, 사용자가 LLM/Python/텍스트 유틸리티를 하나의 워크스페이스에서 결합할 수 있도록 합니다.
-
클립보드 복구 (Clipboard Restoration): 처리 작업이 끝난 후 클립보드의 내용을 자동으로 복구합니다.
-
UI/UX 개선 (UI/UX Enhancements): 더 나은 사용성을 위해 디자인과 사용자 경험을 개선합니다.
-
코드 개선 (Code improvements): 현재 코드베이스는 다소 임시방편적(hacky)인 느낌이 있으며, 논쟁의 여지가 있는 결정들(서브프로세싱/time.sleep(), 컨트롤러에 로직이 너무 많이 집중됨 등)이 많습니다.
-
타 플랫폼 지원 (Other platforms support): Linux/Windows 등 다른 플랫폼으로 확장하지 못할 이유가 없습니다.
-
CI/CD: lint/bandit/mypy를 실행하고 버전/릴리스를 관리할 수 있는 멋진 CI 파이프라인을 구축합니다.
🏗️ 기술 스택 (Tech Stack)
- Python: 유연성과 확장성을 위해 앱의 핵심 로직은 Python으로 작성되었습니다.
- PyQt6: 깔끔한 MVC 아키텍처로 구축되어, 플로팅 윈도우를 위한 세련되고 반응성이 뛰어난 UI를 제공합니다.
- Applescript: 시스템 수준의 클립보드 상호작용 및 애플리케이션 전환을 용이하게 합니다.
📝 라이선스 (License)
이 프로젝트는 MIT License를 따릅니다.
🤝 기여하기 (Contributing)
여러분의 기여를 환영합니다! 참여 방법에 대한 가이드라인은 CONTRIBUTING.md를 확인해 주세요.
질문, 피드백 또는 아이디어가 있으신가요? Github 이슈를 통해 연락해 주세요.
🍊 Orange Intelligence로 워크플로우를 강화하세요 — 더 나은 것은 오픈 소스(open source)이기 때문입니다.