Sobre el proyecto
Clicky es un asistente de enseñanza impulsado por IA que reside como un compañero cerca de tu cursor en macOS. Puede observar tu pantalla, entablar conversación y señalar visualmente elementos específicos de la interfaz. Este repositorio contiene la versión de código abierto de Clicky, publicada bajo licencia MIT, lo que permite a los desarrolladores experimentar, personalizarla o construir sobre ella.
## Características
- **Conciencia de pantalla**: Utiliza ScreenCaptureKit para capturar y analizar el contenido de la pantalla.
- **Interacción por voz**: Captura de voz push-to-talk con transcripción en tiempo real mediante AssemblyAI.
- **IA conversacional**: Transmite transcripciones y capturas de pantalla a Claude para respuestas con contexto.
- **Texto a voz**: Reproduce las respuestas mediante ElevenLabs TTS.
- **Señalización con el cursor**: Claude puede incrustar etiquetas especiales para mover el cursor a elementos específicos de la interfaz en varios monitores.
- **App de barra de menús**: Se ejecuta como una aplicación ligera de barra de menús con un panel de control y una ventana superpuesta a pantalla completa.
## Arquitectura
- **App en Swift** (`leanring-buddy/`): Contiene la lógica principal de la aplicación, incluida la máquina de estados central, la interfaz del panel, el cliente de streaming de Claude, el cliente TTS de ElevenLabs, la ventana superpuesta y los proveedores de transcripción de AssemblyAI.
- **Cloudflare Worker** (`worker/`): Un pequeño proxy que guarda de forma segura las claves de API y enruta las solicitudes a los endpoints `/chat`, `/tts` y `/transcribe-token`.
- **CLAUDE.md**: Un documento de arquitectura completo pensado para que los agentes de IA comprendan el código base.
## Configuración
### Requisitos previos
- macOS 14.2+ (para ScreenCaptureKit)
- Xcode 15+
- Node.js 18+ (para el Cloudflare Worker)
- Una cuenta de Cloudflare (el plan gratuito sirve)
- Claves de API para Anthropic, AssemblyAI y ElevenLabs
### Inicio rápido con Claude Code
1. Instala y ejecuta Claude Code.
2. Pega el prompt proporcionado para clonar el repositorio, leer `CLAUDE.md` y recibir una guía durante la configuración.
### Configuración manual
1. **Configura el Cloudflare Worker**: Ve a `worker/`, ejecuta `npm install` y luego añade tus claves de API como secretos usando `npx wrangler secret put`. Establece el ID de voz de ElevenLabs en `wrangler.toml`. Despliega con `npx wrangler deploy`.
2. **Ejecuta el Worker localmente** (opcional): Usa `npx wrangler dev` y crea un archivo `.dev.vars` con tus claves. Actualiza las URL del proxy en el código Swift para que apunten a `http://localhost:8787`.
3. **Actualiza las URL del proxy**: Busca `clicky-proxy` en el código Swift y reemplázalo con la URL de tu Worker.
4. **Abre en Xcode**: Abre `leanring-buddy.xcodeproj`, selecciona el esquema, establece tu equipo de firma y ejecuta con Cmd+R.
### Permisos necesarios
- Micrófono (para push-to-talk)
- Accesibilidad (para el atajo de teclado global)
- Grabación de pantalla (para capturas de pantalla)
- Contenido de pantalla (para ScreenCaptureKit)
## Estructura del proyecto
```
leanring-buddy/ # Código fuente en Swift
CompanionManager.swift # Máquina de estados central
CompanionPanelView.swift # Interfaz del panel de barra de menús
ClaudeAPI.swift # Cliente de streaming de Claude
ElevenLabsTTSClient.swift # Reproducción de texto a voz
OverlayWindow.swift # Superposición azul del cursor
AssemblyAI*.swift # Transcripción en tiempo real
BuddyDictation*.swift # Flujo de push-to-talk
worker/ # Proxy de Cloudflare Worker
src/index.ts # Tres rutas: /chat, /tts, /transcribe-token
CLAUDE.md # Documento completo de arquitectura
```
## Contribuciones
Se aceptan PRs. Si usas Claude Code, puede leer `CLAUDE.md` para comprender el código base y ayudar con el desarrollo de funciones o la corrección de errores. Los comentarios pueden dirigirse al autor en X (@farzatv).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.