Communitygithub.com

CM - Sistema de Memoria CASS

Memoria procesal para agentes de IA de codificación. Arquitectura cognitiva de tres capas con decaimiento de confianza, aprendizaje de antipatrones, transferencia de conocimiento entre agentes y sistema de seguridad Trauma Guard. CLI Bun/TypeScript.

¿Qué es CM - Sistema de Memoria CASS?

CM (CASS Memory System) es una herramienta de memoria procesal diseñada para agentes de IA de codificación como Claude Code, Cursor, Codex y Aider. Transforma sesiones de trabajo dispersas en una base de conocimiento persistente y compartida entre agentes, utilizando una arquitectura cognitiva de tres capas que refleja el desarrollo de la experiencia humana: memoria episódica (registros de sesiones), memoria de trabajo (resúmenes estructurados) y memoria procesal (reglas destiladas con seguimiento de confianza y decaimiento). Su utilidad principal radica en evitar la pérdida de conocimiento entre sesiones y agentes: un patrón descubierto en Cursor está inmediatamente disponible para Claude Code. Incluye funciones clave como el sistema de decaimiento de confianza con vida media de 90 días, aprendizaje automático de antipatrones, validación de reglas contra el historial de sesiones, y el sistema de seguridad Trauma Guard que previene comandos destructivos. Soporta múltiples agentes, funciona como servidor MCP, y ofrece una CLI completa para recuperación de contexto, gestión del playbook (reglas), retroalimentación inline mediante comentarios en código, y análisis de brechas de conocimiento.

Compatible con✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/bg-szy/TOP-SKILLS/tree/HEAD/skills/marketplace/cm

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace CM - Sistema de Memoria CASS?

Memoria procesal para agentes de IA de codificación. Transforma sesiones dispersas en memoria persistente y entre agentes. Utiliza una arquitectura cognitiva de tres capas que refleja el desarrollo de la experiencia humana.

Por Qué Existe

Los agentes de IA de codificación acumulan conocimiento valioso, pero este:

  • Está atrapado en sesiones - El contexto se pierde cuando la sesión termina
  • Es específico del agente - Claude no sabe lo que Cursor aprendió
  • No está estructurado - Los registros en bruto no son guías accionables
  • Está sujeto a colapso - La sumarización ingenua pierde detalles críticos

Has resuelto errores de autenticación tres veces este mes en diferentes agentes. Cada vez empezaste desde cero.

CM resuelve esto con aprendizaje entre agentes: un patrón descubierto en Cursor está inmediatamente disponible para Claude Code.


Arquitectura Cognitiva de Tres Capas

┌─────────────────────────────────────────────────────────────────────┐
│                    MEMORIA EPISÓDICA (cass)                         │
│   Registros de sesiones en bruto de todos los agentes — la "verdad  │
│   fundamental"                                                      │
│   Claude Code │ Codex │ Cursor │ Aider │ PI │ Gemini │ ChatGPT │ ...│
└───────────────────────────┬─────────────────────────────────────────┘
                            │ búsqueda cass
                            ▼
┌─────────────────────────────────────────────────────────────────────┐
│                    MEMORIA DE TRABAJO (Diario)                      │
│   Resúmenes estructurados de sesiones: logros, decisiones, etc.     │
└───────────────────────────┬─────────────────────────────────────────┘
                            │ reflexión + curación (automatizada)
                            ▼
┌─────────────────────────────────────────────────────────────────────┐
│                    MEMORIA PROCESAL (Playbook)                      │
│   Reglas destiladas con seguimiento de confianza y decaimiento      │
└─────────────────────────────────────────────────────────────────────┘

Las sesiones de cada agente alimentan la memoria compartida. Un patrón descubierto en Cursor automáticamente ayuda a Claude Code en la siguiente sesión.


El Único Comando Que Necesitas

cm context "<tu tarea>" --json

Ejecuta esto antes de comenzar cualquier tarea no trivial. Devuelve:

  • relevantBullets - Reglas del playbook puntuadas por relevancia a la tarea
  • antiPatterns - Cosas que han causado problemas
  • historySnippets - Sesiones pasadas (tuyas y de otros agentes)
  • suggestedCassQueries - Búsquedas de investigación más profundas

Filtrar Historial por Origen

historySnippets[].origin.kind es "local" o "remote". Los aciertos remotos incluyen origin.host:

{
  "historySnippets": [
    {
      "source_path": "~/.claude/sessions/session-001.jsonl",
      "origin": { "kind": "local" }
    },
    {
      "source_path": "/home/user/.codex/sessions/session.jsonl",
      "origin": { "kind": "remote", "host": "workstation" }
    }
  ]
}

Sistema de Decaimiento de Confianza

Las reglas no son inmortales. La confianza decae sin revalidación:

MecanismoEfecto
Vida media de 90 díasLa confianza se reduce a la mitad cada 90 días sin retroalimentación
Multiplicador de daño 4xUn error cuenta 4× más que un acierto
Progresión de madurezcandidato → establecido → probado

Visualización de Decaimiento de Puntuación

Puntuación inicial: 10.0 (10 marcas útiles hoy)

Después de 90 días (vida media):   5.0
Después de 180 días:                2.5
Después de 270 días:                1.25
Después de 365 días:                0.78

Fórmula de Puntuación Efectiva

puntuacionEfectiva = utilDecaido - (4 × daninoDecaido)

// Donde factorDecaimiento = 0.5 ^ (diasDesdeRetroalimentacion / 90)

Máquina de Estados de Madurez

  ┌──────────┐       ┌─────────────┐    ┌────────┐
  │ candidato│──────▶│ establecido │───▶│ probado│
  └──────────┘       └─────────────┘    └────────┘
       │                   │                  │
       │                   │ (dañino >25%)    │
       │                   ▼                  │
       │             ┌─────────────┐          │
       └────────────▶│ obsoleto    │◀─────────┘
                     └─────────────┘

Reglas de Transición:

TransiciónCriterio
candidato → establecido3+ útiles, ratio dañino <25%
establecido → probado10+ útiles, ratio dañino <10%
cualquiera → obsoletoRatio dañino >25% O desaprobación explícita

Aprendizaje de Antipatrones

Las reglas malas no solo se eliminan. Se convierten en advertencias:

"Almacenar tokens de autenticación en caché para rendimiento"
    ↓ (3 marcas dañinas)
"PELIGRO: No almacenar tokens de autenticación en caché sin validación de vencimiento"

Cuando una regla se marca como dañina múltiples veces (>50% ratio dañino con 3+ marcas), se invierte automáticamente en un antipatrón.


Pipeline ACE (Cómo Se Crean las Reglas)

Generador → Reflexivo → Validador → Curador
EtapaRol¿LLM?
GeneradorHidratación de contexto previa a la tarea (cm context)No
ReflexivoExtraer patrones de sesiones (cm reflect)Sí
ValidadorPuerta de evidencia contra historial cassSí
CuradorFusión delta deterministaNo

Crítico: El Curador NO tiene LLM para evitar colapso de contexto por deriva iterativa. Los LLM proponen patrones; la lógica determinista los gestiona.

Validación Científica

Antes de que una regla se una a tu playbook, se valida contra el historial cass:

Regla propuesta: "Siempre verificar vencimiento de token antes de depurar autenticación"
    ↓
Puerta de evidencia: Buscar en cass sesiones donde esto aplicó
    ↓
Resultado: 5 sesiones encontradas, 4 resultados exitosos → ACEPTAR

Las reglas sin evidencia histórica se marcan como candidatas hasta que se prueben.


Referencia de Comandos

Recuperación de Contexto (Flujo de Trabajo Principal)

# EL COMANDO PRINCIPAL - ejecutar antes de tareas no triviales
cm context "implementar autenticación de usuario" --json

# Limitar resultados para presupuesto de tokens
cm context "corregir error" --json --limit 5 --no-history

# Con filtro de espacio de trabajo
cm context "refactorizar" --json --workspace /ruta/al/proyecto

# Explicación autodocumentada
cm quickstart --json

# Salud del sistema
cm doctor --json
cm doctor --fix  # Corregir problemas automáticamente

# Encontrar reglas similares
cm similar "mejores prácticas de manejo de errores"

Gestión del Playbook

cm playbook list                              # Todas las reglas
cm playbook get b-8f3a2c                      # Detalles de regla
cm playbook add "Siempre ejecutar pruebas primero"      # Agregar regla
cm playbook add --file rules.json             # Agregar por lote desde archivo
cm playbook add --file rules.json --session /ruta/session.jsonl  # Rastrear origen
cm playbook remove b-xyz --reason "Desactualizado"  # Eliminar
cm playbook export > backup.yaml              # Exportar
cm playbook import shared.yaml                # Importar
cm playbook bootstrap react                   # Aplicar iniciador a existente

cm top 10                                     # Reglas más efectivas
cm stale --days 60                            # Reglas sin retroalimentación reciente
cm why b-8f3a2c                               # Procedencia de la regla
cm stats --json                               # Métricas de salud del playbook

Aprendizaje y Retroalimentación

# Retroalimentación manual
cm mark b-8f3a2c --helpful
cm mark b-xyz789 --harmful --reason "Causó regresión"
cm undo b-xyz789                              # Revertir retroalimentación

# Resultados de sesión (posicional: estado, reglas)
cm outcome success b-8f3a2c,b-def456
cm outcome failure b-x7k9p1 --summary "El enfoque de autenticación falló"
cm outcome-apply                              # Aplicar al playbook

# Reflexión (generalmente automatizada)
cm reflect --days 7 --json
cm reflect --session /ruta/a/session.jsonl   # Sesión única
cm reflect --workspace /ruta/al/proyecto       # Específico del proyecto

# Validación
cm validate "Siempre verificar nulo antes de desreferenciar"

# Auditar sesiones contra reglas
cm audit --days 30

# Obsoletar permanentemente
cm forget b-xyz789 --reason "Reemplazado por mejor patrón"

Incorporación (Nativo del Agente)

Construcción de playbook de costo cero usando tu agente existente:

cm onboard status                             # Verificar progreso
cm onboard gaps                               # Brechas de categoría
cm onboard sample --fill-gaps                 # Sesiones priorizadas
cm onboard sample --agent claude --days 14    # Filtrar por agente/tiempo
cm onboard sample --workspace /ruta/proyecto   # Filtrar por espacio de trabajo
cm onboard sample --include-processed         # Reanalizar sesiones
cm onboard read /ruta/session.jsonl --template  # Contexto enriquecido
cm onboard mark-done /ruta/session.jsonl      # Marcar procesado
cm onboard reset                              # Empezar de nuevo

Trauma Guard (Sistema de Seguridad)

cm trauma list                                # Patrones activos
cm trauma add "DROP TABLE" --description "Eliminación masiva" --severity critical
cm trauma heal t-abc --reason "Migración intencional"
cm trauma remove t-abc
cm trauma scan --days 30                      # Escanear traumas
cm trauma import shared-traumas.yaml

cm guard --install                            # Hook de Claude Code
cm guard --git                                # Hook pre-commit de Git
cm guard --install --git                      # Ambos
cm guard --status                             # Verificar instalación

Comandos del Sistema

cm init                                       # Inicializar
cm init --starter typescript                  # Con plantilla
cm init --force                               # Reinicializar (crea respaldo)
cm starters                                   # Listar plantillas
cm serve --port 3001                          # Servidor MCP
cm usage                                      # Estadísticas de costo LLM
cm privacy status                             # Configuración de privacidad
cm privacy enable                             # Habilitar enriquecimiento entre agentes
cm privacy disable                            # Deshabilitar enriquecimiento
cm project --format agents.md                 # Exportar para AGENTS.md

Playbooks Iniciadores

Empezar con un playbook vacío es abrumador. Los iniciadores proporcionan mejores prácticas curadas:

cm starters                    # Listar disponibles
cm init --starter typescript   # Inicializar con iniciador
cm playbook bootstrap react    # Aplicar a playbook existente

Iniciadores Incorporados

IniciadorEnfoqueReglas
generalMejores prácticas universales5
typescriptPatrones de TypeScript/Node.js4
reactDesarrollo con React/Next.js4
pythonPython/FastAPI/Django4
nodeServicios con Node.js/Express4
rustPatrones de servicios en Rust4

Iniciadores Personalizados

Crea archivos YAML en ~/.cass-memory/starters/:

# ~/.cass-memory/starters/django.yaml
name: django
description: Mejores prácticas del framework web Django
bullets:
  - content: "Siempre usa el ORM de Django para operaciones de base de datos"
    category: base_de_datos
    maturity: establecido
    tags: [django, orm]

Retroalimentación En Línea (Durante el Trabajo)

Deja retroalimentación en comentarios de código. Se analiza durante la reflexión:

// [cass: helpful b-8f3a2c] - esta regla me salvó de una madriguera

// [cass: harmful b-x7k9p1] - este consejo fue incorrecto para nuestro caso de uso

Protocolo del Agente

1. INICIO:    cm context "<tarea>" --json
2. TRABAJO:   Hacer referencia a los ID de regla al seguirlas (ej., "Siguiendo b-8f3a2c...")
3. RETROAL.:  Dejar comentarios en línea cuando las reglas ayudan/perjudican
4. FIN:       Solo termina. El aprendizaje ocurre automáticamente.

NO necesitas:

  • Ejecutar cm reflect (la automatización lo maneja)
  • Ejecutar cm mark manualmente (usa comentarios en línea)
  • Agregar reglas manualmente al playbook

Categorías de Análisis de Brechas

CategoríaPalabras Clave
depuracionerror, corregir, error, rastreo, pila
pruebasprueba, simulacro, afirmar, esperar, jest
arquitecturadiseño, patrón, módulo, abstracción
flujo_trabajotarea, CI/CD, despliegue
documentacioncomentario, README, API doc
integracionAPI, HTTP, JSON, endpoint
colaboracionrevisión, PR, equipo
gitrama, fusión, commit
seguridadauth, token, cifrar, permiso
rendimientooptimizar, caché, perfil

Umbrales de Estado de Categoría:

EstadoConteo de ReglasPrioridad
critico0 reglasAlta
subrepresentado1-2 reglasMedia
adecuado3-10 reglasBaja
bien_cubierto11+ reglasNinguna

Trauma Guard: Sistema de Seguridad

El principio de la "estufa caliente": aprende de incidentes pasados y previene su recurrencia.

Cómo Funciona

Historial de Sesiones        Registro de Traumas              Guardia en Tiempo de Ejecución
┌─────────────────┐         ┌─────────────────┐              ┌─────────────────┐
│ rm -rf /* (ups) │ ──────▶ │ Patrón: rm -rf  │ ───────────▶│ BLOQUEADO: Este│
│ "lo siento,     │  scan   │ Gravedad: FATAL │    hook     │ comando        │
│  cometí un      │         │ Sesión: abc123  │              │ coincide con   │
│  error..."      │         └─────────────────┘              │ un patrón de   │
└─────────────────┘                                          │ trauma         │
                                                              └─────────────────┘

Patrones de Perdición Incorporados (20+)

CategoríaEjemplos
Sistema de archivosrm -rf /, rm -rf ~, eliminaciones recursivas
Base de datosDROP DATABASE, TRUNCATE, DELETE FROM sin WHERE
Gitgit push --force a main/master, git reset --hard
Infraestructuraterraform destroy -auto-approve, kubectl delete namespace
Nubeaws s3 rm --recursive, CloudFormation destructivo

Almacenamiento de Patrones

ÁmbitoUbicaciónPropósito
Global~/.cass-memory/traumas.jsonlPatrones personales
Proyecto.cass/traumas.jsonlConfirmar en repositorio para el equipo

Ciclo de Vida del Patrón

  • Activo: Bloquea comandos coincidentes
  • Curado: Evadido temporalmente (con razón y marca de tiempo)
  • Eliminado: Removido (puede volver a agregarse)

Servidor MCP

Ejecutar como servidor MCP para integración con agentes:

# Solo local (recomendado)
cm serve --port 3001

# Con token de autenticación (para no loopback)
MCP_HTTP_TOKEN="<aleatorio>" cm serve --host 0.0.0.0 --port 3001

Herramientas Expuestas

HerramientaDescripción
contextRecuperar contexto relevante para una tarea
reflectExtraer patrones del historial de sesiones
validateValidar una regla propuesta contra evidencia
add_ruleAgregar manualmente una regla al playbook
mark_helpfulMarcar una regla como útil
mark_harmfulMarcar una regla como dañina con razón
trauma_listListar patrones de trauma activos
trauma_addAgregar un nuevo patrón de trauma
trauma_healCurar un patrón de trauma (puentear temporalmente)
statsObtener métricas de salud del playbook
startersListar playbooks iniciadores disponibles

Reglas de Oro / Notas de Diseño

  • Siempre ejecutar cm context primero. La mayoría de los errores provienen de empezar sin contexto.
  • Nunca ejecutar cm reflect manualmente. Se ejecuta en intervalos. Si necesitas resultados inmediatos, usa cm reflect --days 1.
  • Usar comentarios en línea sobre comandos manuales. Los comentarios son automáticos, persistentes y rastreables.
  • No editar el playbook directamente. Editar el playbook es peligroso; usa comandos o comentarios en línea.
  • El curador es determinista. El curador solo fusiona; no tiene LLM.
  • Comenzar con un iniciador. La mayoría de los usuarios necesitan iniciadores para empezar.
  • Agregar trauma temprano. Los patrones de trauma previenen errores que podrían arruinar tu fin de semana.
  • Confiar en el decaimiento. Si una regla no se usa durante 180 días, probablemente no era importante.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

bg-szy/TOP-SKILLS

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

bg-szy/TOP-SKILLS

Fill out Microsoft Azure Landing Zone (ALZ) Accelerator checklists by interviewing the user, mapping their Azure subscriptions, integrating IP addressing documentation, and applying Microsoft Cloud Adoption Framework best practices. Produces a completed Excel checklist (.xlsx) ready for ALZ deployment. Use this skill whenever the user mentions Azure Landing Zone, ALZ checklist, landing zone accelerator, platform landing zone configuration, ALZ bootstrap, hub-and-spoke setup, Azure network topology planning, or wants to fill out any ALZ-related checklist or configuration file. Also trigger when the user uploads an Excel file that contains tabs like "Accelerator - Bootstrap", "Accelerator - Bicep", or "Accelerator - Terraform".

bg-szy/TOP-SKILLS

Compose a premium, animated landing page section by section in Next.js + Tailwind + Motion (Framer Motion) — built on a real design system, with editorial copy and motion that feels human-crafted, not template-generated. Use when building or rebuilding a landing page, marketing site, or hero/feature/pricing/CTA sections that need to look production-ready and bespoke from day one.

bg-szy/TOP-SKILLS

Write high-converting landing page copy using proven frameworks like PAS (Problem-Agitate-Solution), AIDA, and StoryBrand. Creates headlines, value propositions, CTAs, and full page sections optimized for conversion. Use when users need landing page copy, sales page content, or marketing website text.

bg-szy/TOP-SKILLS

Optimize landing pages for conversions, performance, and SEO. Use when improving landing pages, increasing conversions, or optimizing page performance.

bg-szy/TOP-SKILLS

Review investment portfolios for risk, diversification, fees. Asset allocation recommendations, tax-loss harvesting, rebalancing.

bg-szy/TOP-SKILLS

Beads Viewer - Graph-aware triage engine for Beads projects. Computes PageRank, betweenness, critical path, and cycles. Use --robot-* flags for AI agents.

bg-szy/TOP-SKILLS

CI red? Call us. Pipeline fire brigade deploys. Use when user mentions CI failures, build errors, test failures, or pipeline issues. Do NOT load for: local builds, standard implementation work, reviews, or setup.

bg-szy/TOP-SKILLS

Mandatory entry point: read this first for any request to make, create, edit, animate, or render a video, animation, or motion graphic, including a promo, explainer, captioned clip, title card, overlay, slideshow or interactive deck, Remotion port, or any HyperFrames HTML composition. Also use it to inspect, diagnose, validate, preview, publish, or batch-render an existing HyperFrames project. Inputs may be a website URL, GitHub PR, Figma design or URL, text or brief, existing footage, or music. It resumes project state, captures intent when applicable, selects and installs the owning workflow, and routes domain capabilities. HyperFrames is the default output framework unless the user explicitly chooses another framework for the deliverable or asks only to record a browser session.

bg-szy/TOP-SKILLS

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities.

bg-szy/TOP-SKILLS

Use when the user asks to "pre-launch check the landing page", "run a Quality-Score preflight", or "verify ad-to-page message match before launch"; produces an ad↔page continuity report — message-match gaps, above-the-fold check, page-speed read, form-friction count, mobile-render flags — as a pass/fix punch list. Not for redesigning or rewriting the page — use landing-optimizer; not for scoring the account or the RQS — use ad-account-auditor. 落地页体验预检/广告落地页一致性检查

bg-szy/TOP-SKILLS

Use when the user asks to "optimize our landing page for influencer traffic", "fix our promo-code landing page", or "improve conversion from a creator campaign"; produces a message-match audit, page-structure and social-proof recommendations, a promo-code/CTA conversion plan, and an A/B test roadmap. Not for measuring campaign results after launch — use performance-analyzer.

bg-szy/TOP-SKILLS

Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review.

bg-szy/TOP-SKILLS

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

bg-szy/TOP-SKILLS

Create high-converting, visually distinctive landing pages. Use when building marketing pages, product launches, SaaS homepages, or any single-page conversion-focused website. Guides section-by-section composition with anti-AI-slop principles.

bg-szy/TOP-SKILLS

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

bg-szy/TOP-SKILLS

Account assets, equity and fund positions, P&L, cash flow records, account statements, margin ratios, buy-power estimates, order management, and DCA recurring investments via Longbridge (most require Trade permission). Frameworks: portfolio diagnosis, rebalancing, asset allocation, risk analysis (VaR/CVaR), performance attribution, and tax-loss harvesting. Triggers: "持仓", "账户", "盈亏", "资产", "对账单", "下单", "买入", "卖出", "撤单", "定投", "组合诊断", "再平衡", "资产配置", "风险分析", "绩效归因", "税损收割", "持倉", "賬戶", "盈虧", "對賬單", "下單", "買入", "賣出", "組合診斷", "再平衡", "稅損收割", "positions", "portfolio", "P&L", "order", "buy", "sell", "DCA", "statement", "risk analysis", "rebalancing", "tax harvesting", "我的风险", "持仓风险", "风险敞口", "資產", "資產配置", "風險分析", "績效歸因", "撤單

bg-szy/TOP-SKILLS

Auto-loaded context for Portfolio Buddy 2 development. Use for ANY task involving: React 19 development, TypeScript, portfolio analysis features, metrics calculations, trading strategy comparison, or working with the Portfolio Buddy 2 codebase. Contains tech stack, known issues, and architectural constraints.

bg-szy/TOP-SKILLS

Process video files with audio extraction, format conversion (mp4, webm), and Whisper transcription. Use when user mentions video conversion, audio extraction, transcription, mp4, webm, ffmpeg, or whisper transcription.

bg-szy/TOP-SKILLS

Using the Wonda CLI to generate images, videos, music, and audio from the terminal — plus LinkedIn, Reddit, and X/Twitter research and automation

Skills relacionados