M1K3

Memoria privada, documentos, voz y un LLM local para tus agentes de codificación, servidos en el dispositivo por la aplicación M1K3 para Mac. 18 herramientas sobre un servidor HTTP de bucle local protegido por tokens. Código fuente disponible.

Documentación

Tu agente ya conoce la web. M1K3 es el que te conoce a ti. Se ejecuta en tu Mac — tus documentos, tus recuerdos, un cerebro local, una voz — y responde a través de MCP en http://127.0.0.1:4242/mcp mientras la app está abierta. Tres comandos lo ponen frente a Claude Code, Codex, Cursor, VS Code o Zed.

$ brew trust round-tower/tap && brew install --cask round-tower/tap/m1k3
$ m1k3 login
$ m1k3 connect claude

La primera línea es Homebrew: la versión 6 te pide que confíes en un tap de terceros antes de instalar desde uno, y el cask instala la compilación nocturna de Developer ID de M1K3 y crea un enlace simbólico de m1k3 — el pequeño cliente de línea de comandos que viene dentro del paquete de la app — en tu PATH.

La segunda línea entrega a m1k3 el token de acceso del servidor. Cada solicitud al servidor MCP de M1K3 debe llevarlo; una solicitud sin él es rechazada con un 401. Cópialo desde la app (sección siguiente), ejecuta m1k3 login y pégalo. Lee el token con el eco desactivado, o a través de una tubería (pbpaste | m1k3 login), nunca desde la línea de comandos donde tu historial de shell lo conservaría. Cuando la app está en ejecución, verifica el token antes de guardarlo y lo mantiene en tu llavero de inicio de sesión.

La tercera línea escribe la entrada MCP para tu agente, con el token incluido, como un encabezado Authorization: Bearer. Cambia claude por codex, cursor, vscode o zed; añade --print para ver la configuración sin tocar un archivo.

Un interruptor, una vez

El servidor MCP está desactivado por defecto y vive dentro de la app: abre M1K3, luego Ajustes ▸ Privacidad ▸ Servidor MCP, y actívalo. El mismo panel muestra el token de acceso, enmascarado, con Copiar (para m1k3 login) y Nuevo token…. Un token nuevo desconecta a cada agente hasta que ejecutes m1k3 login y m1k3 connect de nuevo. El panel también tiene un selector para los cinco agentes con el fragmento, el token rellenado y un botón Copiar, si prefieres hacer clic en lugar de escribir.

Sin Homebrew

Descarga el M1K3.dmg firmado y notarizado desde GitHub Releases y arrástralo a Aplicaciones. Luego usa el selector en Ajustes ▸ Privacidad ▸ Servidor MCP, o ejecuta el mismo comando desde dentro del paquete:

$ /Applications/M1K3.app/Contents/Helpers/m1k3 login
$ /Applications/M1K3.app/Contents/Helpers/m1k3 connect claude

M1K3 necesita un Mac con Apple Silicon en macOS 26. No necesita una cuenta.

Por agente

Cinco clientes, y realmente difieren — así que connect hace lo seguro para cada uno y te dice qué hizo. Estos son los fragmentos que produce m1k3 connect <client> --print, con tu token donde estos muestran m1k3_…:

ClienteQué hace connectDónde aterriza
Claude CodeEjecuta el comando por tiEl registro propio de Claude Code
CursorEdita el archivo por ti~/.cursor/mcp.json
VS CodeEdita el archivo por ti~/Library/Application Support/Code/User/mcp.json
CodexLo imprime para pegar~/.codex/config.toml
ZedLo imprime para pegar~/.config/zed/settings.json

los dos que edita conservan todos los demás servidores en el archivo y obtienen un .bak al lado la primera vez

Claude Code

$ claude mcp add --transport http -s user m1k3 http://127.0.0.1:4242/mcp --header "Authorization: Bearer m1k3_…"

-s user lo registra una vez para cada proyecto, que es el propósito de un residente. Si ya hay una entrada m1k3, connect la elimina y la añade de nuevo, para que una entrada anterior al token reciba el encabezado.

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "m1k3": {
      "url": "http://127.0.0.1:4242/mcp",
      "headers": { "Authorization": "Bearer m1k3_…" }
    }
  }
}

VS Code — ~/Library/Application Support/Code/User/mcp.json

{
  "servers": {
    "m1k3": {
      "type": "http",
      "url": "http://127.0.0.1:4242/mcp",
      "headers": { "Authorization": "Bearer m1k3_…" }
    }
  }
}

Codex — ~/.codex/config.toml

[mcp_servers.m1k3]
url = "http://127.0.0.1:4242/mcp"
http_headers = { "Authorization" = "Bearer m1k3_…" }

Zed — ~/.config/zed/settings.json

"context_servers": {
  "m1k3": {
    "url": "http://127.0.0.1:4242/mcp",
    "headers": { "Authorization": "Bearer m1k3_…" }
  }
}

El esquema de ajustes de Zed se ha movido más de una vez — verifica la forma contra tu versión de Zed. Eso, y el TOML de Codex viviendo en un archivo lleno de tus propios ajustes, es por lo que esos dos imprimen en lugar de escribir.

Dile a tu agente que está ahí

Un servidor conectado que tu agente nunca piensa en llamar es un servidor desperdiciado. m1k3 agent-notes --write pliega este bloque en el AGENTS.md del proyecto — o CLAUDE.md, o cualquier ruta que nombres. Está delimitado por marcadores, así que ejecutarlo de nuevo reemplaza el bloque en lugar de apilar copias:

<!-- m1k3:begin -->
## M1K3 is the resident

M1K3 is a local, private assistant running on this Mac, reachable over MCP. It
holds the user's own documents and memories — so before you search the web, ask
it: \`ask_m1k3\` for a grounded answer, \`search_knowledge\` for the sources behind
one. Persist a durable fact with \`remember\` and it is there next session too.
\`speak\` narrates aloud, which is often kinder than a wall of text.

M1K3 can be down — a "disconnected" MCP server just means the app is closed.
Never block on it; carry on without it.
<!-- m1k3:end -->

Cuatro líneas que un agente realmente obedecerá superan a un párrafo que hojea. Ejecuta m1k3 agent-notes sin argumentos para imprimirlo en su lugar.

Lo que tu agente obtiene

Dieciocho herramientas. La versión corta: puede preguntar a un cerebro local, buscar en tus propios documentos, guardar y recordar hechos entre sesiones, hablar y escuchar, y poner algo en tu lista de tareas sin quitarlo nunca.

HerramientaQué hace
ask_m1k3Pregunta al cerebro local de M1K3, fundamentado en tus documentos y recuerdos
get_answer / list_jobsRecoge una pregunta larga por id de trabajo; lista los trabajos en cola y terminados
search_knowledgeBusca en el conocimiento almacenado de M1K3 — documentos, llamadas, notas; recuperación híbrida (vectorial + texto completo)
list_documentsLista elementos indexados con ids, tipos y títulos
get_documentObtiene el texto de un elemento indexado por id
rememberAlmacena texto en la memoria de M1K3, buscable en cada conversación futura
recall_memoryRecuerda hechos atómicos del grafo de memoria temporal
related_memoryEl hecho que mejor coincide, más un paso hacia sus vecinos enlazados o reemplazados
forget_memoryOlvida permanentemente un hecho — la primitiva de consentimiento, la contraparte de remember
memory_statsCuántos hechos vivos recuerda actualmente M1K3
speak / stop_speakingHabla texto en voz alta a través de la voz de M1K3 (y anima el avatar); detente inmediatamente
listenEscucha en el micrófono y devuelve la transcripción cuando el hablante hace una pausa
list_todosLee la lista de tareas del usuario — qué está abierto, qué está propuesto y aún no aceptado
propose_todoPropone una tarea, sellada con el nombre de tu cliente. Solo el usuario puede aceptarla
get_statusNivel de cerebro activo, estado de voz y banderas de ocupado
open_linkAbre una URL en el panel de revisión de M1K3, junto a la conversación

Las puertas de consentimiento son deliberadas y asimétricas: un agente puede remember y puede forget_memory, pero solo puede proponer una tarea — aceptar, completar y descartar permanecen con la persona.

Lo que no hará

  • No responderá a otra máquina. El oyente está fijado a 127.0.0.1 en el socket, nunca a una dirección de interfaz, así que nada en tu red puede alcanzarlo.
  • No responderá a una página web. Las solicitudes cuyo encabezado Host no sea una dirección de bucle local son rechazadas, y un Origin que no sea una página de bucle local también es rechazado — la defensa estándar contra un sitio que usa tu navegador para alcanzar un servidor en tu propia máquina.
  • No se ejecutará mientras M1K3 esté cerrado. El servidor es parte de la app. Un servidor MCP "desconectado" casi siempre significa que la app no está abierta — por eso el bloque residente anterior le dice a tu agente que nunca se bloquee en él. El comando m1k3 abre la app misma y espera el puerto.
  • No responderá sin su token. Cada solicitud debe llevar el token de acceso como un encabezado Authorization: Bearer; una sin él recibe un 401 antes de llegar a una sesión. El token mantiene fuera a scripts sueltos que encuentran el puerto abierto, y evita que un llamador sin él derribe a tu agente. No es una defensa contra malware que se ejecuta como tú, que puede leer el archivo de configuración de cualquier cliente. Los interruptores por herramienta en Ajustes (escuchar, eliminar recuerdos, abrir enlaces) cubren eso para cada llamador.
  • No escribirá tu configuración desde la compilación de App Store (TestFlight hoy). Esa copia de m1k3 está en sandbox, así que no puede ni leer ~/.cursor/mcp.json ni ejecutar claude por ti. Allí, connect imprime la configuración y lo dice. La compilación de Developer ID — el DMG y el cask de Homebrew — hace la escritura.
  • No servirá a dos agentes a la vez. Un cliente MCP a la vez, en esta versión: un segundo cliente que se conecta termina la sesión del primero.
  • No enviará tus documentos o recuerdos a ningún lado. La recuperación, los embeddings, la inferencia y la voz se ejecutan en el Mac. Los cruces de red documentados de M1K3 no cambian al conectar un agente: una descarga de modelo única en la que optas, búsqueda web (activada por defecto, un interruptor en Ajustes para apagarla) y actualizaciones.

Preguntas frecuentes

¿La app M1K3 necesita estar en ejecución?

Sí, y el servidor tiene que estar activado. El servidor MCP vive dentro de la app, sirve en http://127.0.0.1:4242/mcp solo mientras M1K3 está abierto y está desactivado por defecto — actívalo una vez en Ajustes, Privacidad, Servidor MCP. Un servidor que tu agente reporta como desconectado casi siempre significa que la app está cerrada. El comando m1k3 abre la app por ti y espera hasta veinte segundos a que el puerto responda.

¿Qué agentes puede conectar m1k3 por mí?

Cinco, de dos maneras. Para Claude Code ejecuta el comando de registro propio de ese cliente; para Cursor y VS Code edita el único archivo JSON, conservando todos los demás servidores y dejando una copia .bak al lado la primera vez. Para Codex y Zed imprime el fragmento para que lo pegues, porque reescribir todo el archivo de ajustes de un editor por corazonada es lo incorrecto que una herramienta debería hacer.

¿Es seguro dejar el servidor MCP activado?

Se vincula a 127.0.0.1 y nada más, así que ninguna otra máquina puede alcanzarlo, y rechaza cualquier solicitud cuyo encabezado Host no sea una dirección de bucle local o cuyo Origin sea cualquier cosa menos una página de bucle local — la defensa contra una página web engañada para llamarlo. También quiere su token de acceso en cada solicitud, así que un script suelto que encuentra el puerto abierto recibe un 401. El token no es una defensa contra malware que se ejecuta como tú, que puede leer el archivo de configuración de cualquier cliente; los interruptores por herramienta para escuchar, eliminar recuerdos y abrir enlaces cubren eso. Déjalo activado mientras trabajas y trátalo como tratas a un shell.

¿Qué llega a la nube cuando mi agente usa M1K3?

No tus documentos o recuerdos: la recuperación, los embeddings, la inferencia y la voz se ejecutan en tu Mac. Las advertencias honestas: lo que tu agente lea a través de M1K3 se convierte en parte del contexto propio de ese agente, y un agente alojado en la nube envía su contexto a donde vayan sus conversaciones. Servidor local, reglas del cliente. Y los cruces de red propios de M1K3 no cambian — una descarga de modelo única en la que optas, búsqueda web (activada por defecto, así que una pregunta que M1K3 busca envía esa búsqueda a la web; un interruptor en Ajustes la apaga) y actualizaciones.

¿Cuánto cuesta?

Nada. M1K3 es gratuito para humanos — sin cuenta, sin suscripción, sin telemetría. El código fuente es público bajo la Licencia de Fuente Funcional (FSL-1.1-ALv2). Las organizaciones que quieren un cerebro compartido servido a muchas personas en su propio hardware tienen una licencia separada, M1K3 para Equipos.