Personal Teams Assistant

Asistente personal para Microsoft Teams

Responde en Teams con tu identidad y solo con lo que tú autorizas.

Contesta por ti cuando alguien te escribe, te menciona o te preguntas en tu chat personal. Busca evidencia en tus fuentes, redacta con Codex, Claude Code o DeepSeek, verifica en código cada enlace y dato sensible, y envía una sola vez.

cargo install personal-teams-assistant --locked

Código abierto (MIT) · macOS y Windows con app de bandeja · Linux y servidores sin interfaz

Pantalla de inicio de la app: asistente activo, cuenta Microsoft conectada, modelos con respaldo, fuentes listas y actividad reciente.
Sin botOAuth delegado con PKCE
4 permisoslos mínimos de Graph
3 proveedoresde modelos, con respaldo
0 reintentosde envío a Teams

Cómo funciona

Del mensaje a la respuesta, con un control en cada paso

Los modelos proponen; el código decide qué se puede leer, qué se puede citar y qué se envía.

  1. 1

    Recibe

    Microsoft Graph avisa por webhook de cada mensaje nuevo. Tu chat personal también se consulta cada 10 s.

  2. 2

    Decide si le toca

    Solo mensajes directos, menciones reales o tu chat personal. Llamadas, reuniones y «¿tienes un minuto?» quedan para ti.

  3. 3

    Busca evidencia

    Lee únicamente las fuentes abiertas a esa conversación: archivos Git, URLs, Wiki y actividad de Azure DevOps.

  4. 4

    Redacta

    Codex → Claude Code → DeepSeek. Si el primero falla o se queda sin créditos, responde el siguiente; la próxima llamada vuelve a empezar por tu predeterminado.

  5. 5

    Verifica en código

    Referencias, IDs, URLs y datos sensibles. Si algo no se puede comprobar, la respuesta se retiene y te avisa en tu chat personal.

  6. 6

    Envía una vez

    Como HTML de Teams y registrado antes de salir. Nunca reintenta: ante la duda, queda para revisión humana.

Qué incluye

Pensado para quien responde muchas preguntas repetidas

Con tu identidad

Responde como tú, no como un bot. Cliente público de Entra, PKCE y solo User.Read, Chat.Read, ChatMessage.Send y offline_access.

Fuentes con audiencia

Cada fuente nace deshabilitada, sin audiencias y sin procesamiento externo. Tú decides qué conversación puede usar qué.

Respuestas con fuentes

Las respuestas basadas en la Wiki enlazan sus páginas y dicen quién las documentó. Work items y pipelines llevan enlace verificado.

Modo de observación

Empieza redactando propuestas sin enviar nada. Revísalas en la app y activa el envío cuando te convenzan.

Cada mensaje, explicado

Qué decidió, qué interpretó, qué modelo respondió, qué falló antes y el registro de cada paso, en la pestaña Mensajes o con pta audit.

App, CLI y agentes

App de bandeja, CLI pta con salida JSON estable y una skill incorporada para que tu agente de código lo opere.

Chat de prueba: una pregunta sobre un endpoint respondida con pasos, un ejemplo JSON y la página de la Wiki citada.
El chat de prueba ejecuta el mismo pipeline que Teams, sin enviar nada.

Seguridad

Las decisiones de los modelos no conceden permisos

Audiencias, rutas, URLs y límites se verifican en código. La pregunta, los documentos y los resultados se tratan como datos no confiables.

  • Credenciales en el almacén del sistema. Llavero de macOS o Credential Manager; en Linux, archivos privados del perfil. Solo entran por stdin.
  • Tokens cifrados. Los tokens OAuth se guardan con AES-256-GCM-SIV.
  • Modelos sin herramientas. Las CLI de Codex y Claude corren sin shell, archivos, web ni subagentes, en un directorio vacío y sin tus credenciales.
  • Redacción antes del modelo. Secretos, tokens, correos, teléfonos, RUT y tus patrones propios se ocultan en la evidencia y en la auditoría.
  • Un envío, nunca dos. Graph no ofrece idempotencia, así que un envío dudoso queda como «incierto» para que lo revises.

Instalar

Un solo paquete de Cargo

Instala la app, el host y el CLI pta. Tu perfil, credenciales y cuenta se conservan entre versiones.

macOS y Windows

App de bandeja, host y CLI. Requiere Rust, los prerrequisitos de Tauri 2 y Git.

cargo install personal-teams-assistant --locked
personal-teams-assistant  # abre la app

Linux y servidores

Sin Tauri ni WebKit; se opera solo con pta y sirve como servicio de systemd.

cargo install personal-teams-assistant \
  --no-default-features --locked
personal-teams-assistant --headless --start
  1. Configura

    Guarda tus credenciales, elige el orden de los modelos y registra tu app de Entra. La pestaña Inicio te dice qué falta.

    pta status
  2. Conecta

    Inicia sesión con tu cuenta Microsoft y expón el puerto local con una URL HTTPS estable, por ejemplo Cloudflare Tunnel.

    pta auth microsoft login
  3. Observa

    Autoriza tus fuentes, inicia el asistente y revisa sus propuestas sin enviar nada.

    pta start
  4. Activa

    Cuando las propuestas te convenzan, desactiva el modo de observación.

    pta mode active

Para recibir mensajes, el equipo que ejecuta el asistente debe estar encendido y alcanzable desde una URL HTTPS pública. No ejecutes dos instancias activas de la misma cuenta.

Empieza en modo de observación.

Nada se envía hasta que tú lo decidas.

cargo install personal-teams-assistant --locked