Skip to content

~/schedule.md· macOS 14+ · Solo local · Sin cuenta, sin sincronización

Tu agenda es un archivo. No una cuenta.

Pídele tu semana a cualquier modelo, pega la respuesta en ~/schedule.md y la app la tiene una décima de segundo después — lista, rejilla semanal, recordatorios y una curva de interés compuesto. Marca algo como hecho y esa misma línea se reescribe en el archivo. El formato es lo bastante pequeño para que un LLM lo acierte a la primera y lo bastante estricto para que el parser nunca adivine.

1 archivo
Toda la base de datos
0.1s
Del guardado a la pantalla
0 cuentas
Y ninguna petición de red
~/schedule.mdtexto plano
observandoguardado · 0.1s
el-formato

Una línea, entera

14:00-15:00
Hora de inicio y fin. Sin fin, es un momento; sin hora, es una tarea del día.
Gym
El título. Todo lo que queda después de quitar los tokens del final.
#health
Tema. Agrupa la barra lateral y mueve la curva de interés compuesto.
@casa
Lugar. Texto libre, solo se lee al final de la línea.
!15m
Aviso 15 minutos antes, por Notification Center. También !1h, !1d, !0.

hecho se escribe x delante, o - [x] en una tarea

La app SKD en macOS mostrando la lista de hoy agrupada por día, con temas en la barra lateral
SKD.applista · hoy y los próximos días, agrupados por fecha
el-problema

Tu gestor de tareas es dueño de tus tareas

La agenda de la que dependes vive dentro de la base de datos de otro, detrás de una cuenta, una API y un servicio de sincronización. Para que un modelo la escriba necesitas OAuth, tool calls y una integración que se rompe cuando le apetece. Y el día que la app cierre o cambie de precio, los datos se van con ella — porque nunca tuviste una copia que pudieras leer.

Una agenda son unas decenas de líneas de texto. Debería ser un archivo tuyo, en un formato que puedas leer sin ninguna app.

el-archivo

Un archivo, dos ventanas

La ventana de la izquierda es la base de datos completa. La de la derecha es la app leyéndola. Las dos están vivas: un cambio en cualquiera aparece en la otra en una décima de segundo, porque el watcher sigue los guardados atómicos — los que hace un editor, o una IA escribiendo con un archivo temporal.

schedule.md abierto en un editor junto a la app SKD mostrando las mismas entradas
~/schedule.mdel editor a la izquierda, la app a la derecha, el mismo archivo
  • Una cabecera ## YYYY-MM-DD abre el día; debajo van eventos con hora y tareas con guion
  • #tema, @lugar y !30m se leen solo al final de la línea, así los títulos nunca se rompen
  • Marcar algo escribe "x " delante del evento o "- [x]" en la tarea — sin capa de sincronización
funciones

Lo que añade la app

El archivo sigue siendo la fuente de verdad. La app es lo que lo hace cómodo día a día.

  • Una alta rápida que habla SKD

    para que escribas "14:00-15:00 Gym #health !15m" y sea un evento, o prosa suelta y sea una tarea del día.

  • Rejilla semanal

    siete columnas sobre una rejilla horaria, bloques dimensionados por duración y una línea de ahora en el día de hoy.

  • Recordatorios locales

    para que !30m, !1h o !1d en cualquier línea suenen a tiempo, sin servicio de notificaciones de por medio.

  • La curva del 1%

    para que veas el interés compuesto de tu propio archivo: ritmo, racha, proyección a un año y qué #tema tira de la curva.

las-vistas

La misma línea, leída de tres formas

La lista es para el día. La semana es para ver dónde entra el trabajo. La vista compuesta es para ver si el mes fue real.

La vista semanal de SKD con siete columnas, bloques por duración y la línea de ahora
Semanasiete columnas, bloques por duración, línea de ahora
La vista de interés compuesto de SKD con la curva, las barras diarias y el desglose por tema
Compuestola curva ×1.01 / ×0.99 sobre tus propias entradas
lo-que-incluye

Todo lo que hace falta para vivir en un archivo

Cada función existe para que el archivo siga siendo suficiente. Sin cuentas, sin nube, sin funciones que no usarías.

  • Un archivo como base de datos

    Markdown plano en ~/schedule.md — legible, buscable y respaldado por lo que ya respalda tu disco.

  • Recarga en 0.1s

    El watcher vigila el archivo y su carpeta padre, así que sigue guardados atómicos vengan de quien vengan.

  • Lista, semana y temas

    Hoy, Próximos, Todos, Completados, una fila de Atrasados y cada #tema del archivo con su cuenta.

  • Vista de interés compuesto

    La curva ×1.01 / ×0.99 sobre tus propias entradas, con ritmo, racha y proyección a un año.

  • Importa y exporta

    Arrastra otro .md para fusionarlo sin duplicados, y exporta .ics con VEVENT, VTODO y VALARM.

  • Sin red, sin cuenta

    La app no hace peticiones. Nada que registrar, nada que sincronizar, nada que caducar.

como-funciona

Cómo funciona

  1. Pega el prompt

    La spec de SKD son nueve líneas de reglas que puedes pegar en cualquier modelo. Pide tu semana y vuelve como texto plano — fechas, eventos con hora, tareas, etiquetas, lugares y recordatorios. Sin JSON, sin pelearte con esquemas.

  2. Guárdalo como ~/schedule.md

    Ese archivo es la base de datos. La app lo vigila y recarga una décima de segundo después de cualquier guardado — tuyo, de tu editor, o de una IA escribiendo por un temporal.

  3. Trabaja desde la app

    Lista, rejilla semanal, alta rápida, recordatorios y la vista de interés compuesto. Cada casilla, edición y entrada nueva se escribe de vuelta como la misma línea SKD, así el archivo nunca se queda atrás.

comparativa

Frente a un gestor de tareas en la nube

Gestor en la nubeSKD
Dónde vive tu agendaLa base de datos de otroUn archivo de tu disco
Cuenta obligatoria
Para que una IA lo escribaOAuth y tool callsTexto plano, cero setup
Funciona sin conexiónParcialmente
Si el producto cierraExportas y esperasTe queda el archivo
CosteSuscripciónGratis, código abierto
para-quien

Para quién es

  • Quien planifica con un LLM

    Ya le pides a un modelo que te ordene la semana. Este es el camino más corto entre su respuesta y un calendario de verdad — copiar, pegar, listo. Sin conectores que autorizar.

  • Gente de local-first y texto plano

    Tienes las notas en markdown y quieres la agenda en el mismo sitio: buscable con grep, comparable con diff, respaldada por lo que ya respalda tu carpeta personal.

  • Quien no quiere una quinta cuenta

    Sin registro, sin sincronización, sin suscripción que pueda caducar. La app abre un archivo de tu disco y esa es toda la lista de dependencias.

privacidad

Privacidad

No hay servidor al que mandar nada.

  • La app lee y escribe un archivo de tu máquina. No hace ninguna petición de red — no hay sistema de cuentas, ni telemetría, ni backend de sincronización.
  • No se sube nada cuando marcas algo como hecho. La escritura va al mismo archivo markdown del que salió la entrada.
  • Los recordatorios se programan localmente por Notification Center, con un fallback dentro de la app si el sistema rechaza una build firmada ad-hoc.
precio

Gratis. Y tuyo.

SKD se compila desde el código. No hay plan de pago, ni versión Pro, ni nada que caduque.

$0macOS 14+

Clona el repo, ejecuta ./build.sh install y apunta la app a tu archivo markdown.

  • La app completa: lista, semana, compuesto y editor
  • Recordatorios locales con !30m, !1h, !1d, !0
  • Importa arrastrando otro archivo SKD
  • Exportación .ics desde la herramienta Python incluida
  • La spec del formato, para escribirlo desde cualquier modelo
  • 41 tests sobre el formato y la curva

Requiere un toolchain de Swift 5.9. Todavía no hay build notarizada para descargar.

preguntas

Respuestas rápidas sobre SKD

Respuestas directas para quien evalúa si SKD encaja con su forma de trabajar.

¿Qué es SKD?

Dos cosas con un mismo nombre: un formato de agenda lo bastante pequeño para que cualquier LLM lo emita bien a la primera, y una app nativa de macOS que lo lee y lo escribe. El formato es una cabecera de día (## YYYY-MM-DD) seguida de eventos con hora, tareas, etiquetas, lugares y recordatorios — nada más.

¿Necesito una IA para usarlo?

No. El campo de alta rápida parsea SKD directamente: "14:00-15:00 Gym #health !15m" se convierte en evento y la prosa suelta en tarea. La IA es para lo que el formato está optimizado, no un requisito.

¿Y si la app y mi editor no coinciden?

No pueden durante mucho. La app vigila el archivo y su carpeta padre, así que detecta guardados atómicos en una décima de segundo, y todo lo que cambia lo escribe como la misma línea SKD. El archivo siempre manda.

¿Puedo llevar la agenda a un calendario real?

Sí. La herramienta Python incluida exporta .ics — entradas con hora como VEVENT, tareas como VTODO, etiquetas como CATEGORIES, recordatorios como VALARM. Los UID son un hash de fecha, hora y título, así que reexportar actualiza los eventos en vez de duplicarlos.

¿Qué es la vista de interés compuesto?

La curva de Hábitos Atómicos calculada sobre tu propio archivo: cada entrada que terminas es ×1.01 y cada una que dejas pasar es ×0.99. Muestra dónde estás, tu ritmo real, dónde te deja ese ritmo en un año, tu racha y qué #tema tira de la curva y hacia dónde. Un día todavía en curso nunca cuenta como fallado.

¿Cómo se instala?

Compilándolo desde el código: ./build.sh install deja SKD.app en /Applications. Necesita macOS 14 o superior y un toolchain de Swift 5.9 (las command line tools de Xcode). Todavía no hay descarga notarizada.

Quédate con el archivo. Que la app sea la reemplazable.

Compílalo con un comando, apúntalo a un archivo markdown y ten una agenda que sobreviva a la app que la muestra.

## SKDHecho y mantenido por Orlando AscanioSwift · SwiftUI · ~/schedule.md
SKD — el gestor de tareas cuya base de datos es un archivo markdown | Orlando Ascanio