App Android en Kotlin + Jetpack Compose que optimiza prompts para reducir tokens antes de enviarlos a Claude (Anthropic API).
- Optimización local en tiempo real: Elimina cortesía innecesaria, comprime términos técnicos, limpia relleno — sin red, instantáneo.
- Estimación heurística de tokens: Muestra tokens estimados mientras escribes (ratio ajustado por idioma: español 3.5 chars/token).
- Conteo exacto vía API: Usa el endpoint
/v1/messages/count_tokensde Anthropic para validar antes de enviar. - Envío directo a Claude: Botón para enviar el prompt (original u optimizado) y ver la respuesta.
- Historial persistente: Guarda los últimos 50 prompts con ahorro estimado y tokens exactos.
- Multi-modelo: Selector de claude-opus-4-5, claude-sonnet-4-5, claude-haiku-4-5.
- Multi-idioma: Heurística ajustada para ES, EN, FR, DE, PT, ZH, JA.
- Android Studio Hedgehog (2023.1.1) o superior
- JDK 11+
- Android SDK 26+
# Clona o extrae el ZIP en tu directorio de proyectos
# Abre en Android Studio: File → Open → selecciona la carpeta ClaudeTokenOptimizer- Ve a console.anthropic.com
- Crea una API key (empieza con
sk-ant-) - Abre la app → ⚙️ Configuración → pega la clave
./gradlew assembleDebug
# o usa el botón ▶ Run de Android Studioapp/src/main/java/com/claude/tokenoptimizer/
├── MainActivity.kt # Entry point
├── api/
│ └── ClaudeApiService.kt # OkHttp client para Anthropic API
├── data/
│ ├── Models.kt # Data classes
│ └── AppPreferences.kt # DataStore (API key, historial, config)
├── optimizer/
│ └── SpanishPromptOptimizer.kt # Motor de optimización local
└── ui/
├── Theme.kt # Colores y tipografía (paleta Claude)
├── MainViewModel.kt # Estado y lógica de negocio
├── Navigation.kt # NavHost
├── HomeScreen.kt # Pantalla principal
├── SettingsScreen.kt # Configuración
└── HistoryScreen.kt # Historial de prompts
En SpanishPromptOptimizer.kt, añade entradas al mapa TECH_COMPRESSION:
"tu término largo" to "abreviación"En CHARS_PER_TOKEN:
"tu_idioma" to 3.7f- La API key se guarda en DataStore cifrado del dispositivo, nunca sale en logs.
- La optimización local funciona sin conexión.
- El conteo exacto y el envío requieren internet.
- No se incluye tokenizer pesado en el APK (tiktoken/transformers no son compatibles con Android directamente).
| Librería | Uso |
|---|---|
| Jetpack Compose + Material3 | UI |
| Navigation Compose | Navegación |
| DataStore Preferences | Persistencia |
| OkHttp | HTTP client para Anthropic API |
| Gson | Serialización JSON |
| Kotlin Coroutines | Async/IO |