Loop

Loop is an open-source web app that keeps agent skills current: it tracks the sources each skill depends on, refreshes the skill with a research agent on a schedule, and saves every change as an immutable version with a diff.

Facts

  • Site: https://loooop.dev. On 2026-10-30 a signed-out request to / returned 307 to /home, and /home and /faq returned 200 (/home from a stale ISR cache entry). www.loooop.dev and the old loooooop.vercel.app return 308 to loooop.dev. The tagline is "Skills that never go stale". Source: curl -sI, 2026-10-30; middleware.ts; README.md
  • No kevinliu.studio alias. loop.kevinliu.studio resolves through the kevinliu.studio wildcard DNS record, but no Vercel project serves it and the TLS handshake still failed on 2026-11-03. The repo references only loooop.dev. Source: curl and dig, 2026-10-30; curl, 2026-11-03; grep of ~/repos/Loop
  • Data routes: on 2026-11-03 /api/skills/frontend-frontier/raw returned 200 in about 2 s with version v124, updated 2026-11-03 at 09:02 UTC by the daily refresh. /api/skills/raw/all returned 200 in about 3 s, and /skills/frontend-frontier returned the skill page in under 1 s. On 2026-10-30 the same routes had returned 500 or timed out after about 90 s. No commit landed in between, so the failure was not fixed in code. Source: curl, 2026-10-30 and 2026-11-03; git log origin/main, 2026-11-03
  • Repo: https://github.com/Kevin-Liu-01/Loop, public, TypeScript, 18 stars, 3 forks. It was pinned on Kevin's profile in the 2026-07-01 snapshot. The GitHub homepage field still says loooooop.vercel.app. Source: gh repo view, 2026-10-30; raw/github/kevin-pinned-repos-2026-07-01.json
  • License: MIT, added 2026-06-15. Source: commit c5a62a5; gh repo view
  • Stack: Next.js 16, React 19, TypeScript, Tailwind 4, Supabase Postgres, Clerk, Stripe, AI SDK 5 with Vercel AI Gateway, @vercel/queue, @vercel/sandbox, @vercel/blob, Vercel Analytics and Speed Insights, Resend email, Brave Search API. The landing uses Three.js, GSAP, Lenis and motion. Lint and format run through Ultracite (oxlint and oxfmt). Source: package.json; README.md
  • Hosting: Vercel project loop, with two crons: a refresh at 09:00 UTC daily and an import at 09:00 UTC on Mondays. The refresh worker is a queue/v2beta trigger on the skill-refresh topic. Source: .vercel/project.json; vercel.json
  • History: first commit 2026-03-28 ("feat: bootstrap loop app"), last commit on main 2026-10-16, 159 commits on origin/main. 149 of them landed by 2026-04-30. Public launch 2026-04-27. Source: git log, 2026-10-30
  • Status: live, and the daily refresh is running: the data API answered on 2026-11-03. The ten commits after April are UI and SEO fixes, the license, performance, cost, analytics and icons. Source: git log; curl, 2026-11-03

What it does

Loop treats a skill as a living document. A user attaches sources (docs, changelogs, repos, release notes, RSS and Atom feeds) and a cadence. A research agent scans those sources, decides what changed, and writes a new immutable version with a before and after diff. There are no silent overwrites. Source: loooop.dev, 2026-04-27; README.md The README states the thesis: "agent skills should improve while you sleep, not decay while you forget." Source: README.md

Any agent can fetch the current version from a raw endpoint such as https://loooop.dev/api/skills/frontend-frontier/raw. ?v=N pins a version and /api/skills/raw/all lists every public skill and MCP server. Source: public/llms.txt

File-backed skills matter because coding agents can edit them with normal repo mechanics: inspect, patch, diff, validate and commit. The catalog is an editable source tree, not a prompt database. Source: X/@zachlloydtweets reply, 2026-06-17

The README lists four jobs: Source: README.md; lib/faq-data.ts, 2026-06-18

  1. A catalog of source-backed skills to browse, track, import, fork or write. Each user can create up to 10.
  2. Scheduled refreshes that save each pass as a new version. Free accounts get 3 automations.
  3. An inspectable run for every refresh: source scans, search traces, summaries, logs and diffs.
  4. An agent sandbox and Agent Studio. The user picks a provider and model (AI Gateway, OpenAI, OpenRouter, Groq, Together AI or Ollama), attaches skills and MCP servers, reviews the assembled context, and runs Node or Python in a Vercel Sandbox.

Loop also keeps an MCP catalog of 70+ servers (http and stdio servers can execute) and a publisher path: five verified provider authors (Anthropic, OpenAI, Cursor Directory, Awesome Agent Skills, Awesome MCP Servers), brand icons, public, member or private visibility, per-skill agent docs (AGENTS.md, cursor.md, claude.md, codex.md), and Stripe Connect payouts. Source: lib/faq-data.ts

Refresh pipeline. The daily cron at GET /api/refresh only decides which skills are due and enqueues one @vercel/queue message per skill. The worker at POST /api/refresh/skill loads tracked sources, fetches signals, searches the web with Brave Search by default (Firecrawl, Serper, Tavily and Jina are optional user keys), fetches pages as Markdown, revises the skill body, saves a version and stores the run log. The step budget scales with the source count and search budget and reserves 5 steps for the revision. Retries back off, and repeated failures are counted on the skill. Source: README.md

Weekly import. Every Monday the import cron scans five built-in sources. Anthropic Skills, OpenAI Skills and Cursor Directory are read as canonical skill folders. Awesome Agent Skills and Awesome MCP Servers are lead lists: Loop follows their GitHub links and imports repos that contain a SKILL.md. The default limit is 10 imports per run. Each import carries an official or community trust tier, and admins get a digest email through Resend. Operator users can add their own GitHub repos as sources. Source: lib/faq-data.ts; lib/weekly-import.ts

Data model. Supabase is the only store in production, with row-level security on every table: skills (body, metadata, sources, automation and updates JSONB), skill_versions, categories, mcps, briefs, loop_runs and usage_events. The schema has 23 migrations. A source is one of rss, atom, docs, blog, github or watchlist. An update stores the summary, what changed, experiments, source items, changed sections, the editor model and whether the body changed. Every saved revision gets a stable URL such as /skills/frontend-frontier/v4. Skill origins are user and remote in production. repo and codex (from ~/.codex/skills) are dev-only and lose to user skills on a slug clash. Clerk handles auth, and billing IDs live on the Clerk user. Automations run daily, weekly or manually and show on a calendar at /settings/automations. Usage events record page views, copies, searches, skill actions, agent runs and API calls, shown at /settings/health. Source: README.md; supabase/migrations

Models. Automations always go through AI Gateway (createGateway from the ai package). Each sandbox session runs in its own Sandbox.create VM. The default editor model is openai/gpt-6-luna, set by LOOP_MODEL. Operator users can pick GPT-6.1 Sol, GPT-6 Luna, Claude Sonnet 5.5 or Claude Haiku 5.5 per automation, using IDs from AI Gateway's live model list. Source: Kevin-Liu-01/Loop#6, merged 2026-11-04, commit 9b157a5; lib/agents.ts, components/automation-edit-modal.tsx and lib/faq-data.ts on origin/main, checked 2026-11-04 Claude Models and OpenAI Models cover the lineups.

Tiers. Free: browse, 10 skills, 3 automations, the sandbox. Operator, $5 a month: unlimited automations, cadence and model choice, custom import sources, marketplace pricing, Stripe Connect payouts and priority support. Source: lib/faq-data.ts; public/llms.txt

Launch record

Loop launched on 2026-04-27, and the X release post went out on 2026-04-28: "Releasing Loop! An open-source operator desk for agent skills." By 2026-07-12 it had 11 likes, 1 repost, 2 replies and 4 bookmarks. The planned order was X, then LinkedIn, then four subreddits a day apart (r/ChatGPTCoding, r/LocalLLaMA, r/SideProject, then r/nextjs after 1 to 2 weeks). The X, LinkedIn and Reddit drafts live in private page. Source: X/@kevskgs, 2026-04-28 Source: raw/x-bookmarks/enriched/2049232663215775953.json Source: private page, 2026-04-27

The launch screenshots show the "Skills that never go stale" hero with diff cards, a catalog of 111 skills with 45 tracked, category tabs (A2A, Containers, Frontend, Infra, Ops, Security, SEO+GEO, Social Systems) and an automation calendar. A skill page shows version history, automation state, the raw endpoint and tabs for Studio, Content, Agent docs, Activity, Automations, Research and Sources. A run log shows success in 139.5 s, 11 sources, 94 signals, 20 steps, completion 11/11, and a revise_skill call with its diff. Source: local launch image review, 2026-07-03

The launch catalog, with the MCP catalog then at 10 servers (AWS API, Brave Search, Cloudflare, Context7, Docker, Exa, Fetch, Figma, Filesystem, Firecrawl): Source: loooop.dev, 2026-04-27

Skill Category Version Sources
Frontend Frontier Frontend v18 11
Next.js Patterns Frontend v20 9
Lighthouse Web Performance Frontend v15 15
OpenAI Agent Orchestration A2A v17 17
Tool Use & Function Calling A2A v15 20
OpenAI Prompt Engineering A2A v15 19
Anthropic MCP Development A2A v15 8
Google SEO & GEO SEO + GEO v16 16
OWASP Security Best Practices Security v16 11
GStack Frontend v1 1

By June the README reported 100+ verified skills, many at v16 to v21 after weeks of daily refreshes. Source: README.md, 2026-06-18

Kevin's decisions and rules

Why he built it: he kept a personal wiki of 200+ pages with 14 automations keeping skills current, and wanted that workflow as a product for other people building with agents. The hard part was the refresh pipeline: scan sources, summarize change and decide whether the skill body needs an update, without drift. He said it taught him about agent reliability, versioning and feedback loops that compound. private page The direct trigger was Codex automations that needed Codex left open on a Mac and kept failing on stale refresh tokens. Source: README.md

The README's shipping beliefs, which put Build, Don't Buy into practice: Source: loop/README.md "Shipping beliefs", 2026-06-13

  • Automations run unattended. A system that needs a laptop, a pinned app or routine rescue is not automation.
  • Product logic gets custom code. Infrastructure plumbing is rented whenever possible.
  • Every refresh is inspectable. Sources, search traces, summaries, diffs and version history are product surfaces.
  • Managed primitives are a feature when they free time for the refresh pipeline, editor agent, diff viewer and scheduler.

Other recorded decisions:

Fieldwork direction. The July 2026 whiteboard places Fieldwork beside Loop as a possible next operator surface: a stateful visual-feedback editor that keeps site state, conversation and version history, DOM or region selection, screenshots, typed drawing layers and pen tools, inspiration, and token and color controls in one loop. private page supplies execution and Sigil UI supplies design constraints. Whether Loop owns the editor or Fieldwork stands alone is still open. Full source: private page. Source: private July 2026 workflow whiteboard; private Discord message 1527032191513792674, 2026-07-15

Working state

  • Repo: ~/repos/Loop. Local main has diverged from origin/main. It holds three unpushed commits from 2026-09-14 (version-page caching for a day, tag-based cache invalidation, archival version canonicals) and lacks three remote commits (the ISR change merged 2026-10-14, the 2026-10-16 GA4 change and the 2026-10-16 icons). Branch codex/reduce-isr-write-costs merged as PR #2 (2e69917) and is still checked out in ~/repos/outputs/cost-domain-20261008/Loop. No PRs are open. Source: git log, git worktree list and git cherry, 2026-10-30; gh api pulls, 2026-10-30
  • Agent guides: AGENTS.md (plan-mode review prompt, Ultracite rules, social preview rules), .claude/CLAUDE.md (Ultracite rules) and .cursor/rules/frontend-10x-*.mdc. Source: repo files
  • Config: environment variable names are in .env.template and the README. The cron schedule is in vercel.json. Source: README.md
  • Checks: pnpm test runs 37 test files on origin/main with the Node test runner. pnpm typecheck and pnpm check cover types and lint. Source: package.json; test/
  • Memory and records: the Claude memory vercel-personal-team-cost-drivers (2026-09-15, in a scratch-workspace project folder) holds the 2026-09 cost review. ~/repos/outputs/cost-domain-20261008/ holds the 2026-10-08 cost and domain audit. No RESUME or handoff file mentions Loop. Source: search of ~/.claude/projects//memory and ~/gt/RESUME.md, 2026-10-30

Open items


Timeline

  • 2026-11-04 | Loop#6 replaced the model menu with GPT-6.1 Sol, GPT-6 Luna, Claude Sonnet 5.5 and Claude Haiku 5.5, and made GPT-6 Luna the default. Source: Kevin-Liu-01/Loop#6, commit 9b157a5
  • 2026-11-03 | Flagged the retired and deprecated models in Loop: the retired Claude Sonnet 4 and Claude Haiku 3.5 menu entries, the default openai/gpt-5-mini (shuts down 2026-12-11) and the GPT-4o and GPT-4o Mini entries (shut down 2027-01-14). Source: lib/agents.ts; lib/faq-data.ts; components/automation-edit-modal.tsx; Anthropic and OpenAI deprecation pages, checked 2026-11-03
  • 2026-11-03 | The data routes answered 200 in 2 to 3 s and the refresh had updated frontend-frontier to v124 that morning, with no commit since 2026-10-16. Source: curl and git log, 2026-11-03
  • 2026-10-30 | Rewrote the page from the repo, gh metadata, memories and live checks. Loop has 159 commits on origin/main (first 2026-03-28, last 2026-10-16), 18 stars and 3 forks. loooop.dev serves 200 at /home, but /api/skills/frontend-frontier/raw returned 500 after 90 s, /api/skills/raw/all timed out, and a skill page streamed a not-found body after 91 s. Loop has no kevinliu.studio hostname. Added the Monday weekly-import cron, the five import sources and the local/remote branch divergence. Source: git log; gh repo view; curl, 2026-10-30
  • 2026-10-16 | Added GA4 on public pages with Consent Mode v2 defaults, plus apple-touch and PNG manifest icons and a raster JSON-LD logo. Source: commits 63766fb, b81262a
  • 2026-10-08 | During the Vercel cost and domain audit, Loop drew about 95% of the cycle's ISR-write charges. PR #2 raised the home, landing and sitemap revalidation from 300 s to 3,600 s and removed changing sitemap timestamps; it merged on 2026-10-14. Kevin kept loooop.dev while moving other projects to kevinliu.studio. Source: commit 2e69917; gh api pulls/2; ~/repos/outputs/cost-domain-20261008/audit.md and recovered-conversation.md
  • 2026-09-14 | Made three local commits that were never pushed: cache pinned version pages for a day, invalidate detail caches by tag, and canonicalize historical versions to the latest with noindex,follow. They followed a 2026-09 cost review. Source: local commits 77b2290, 73a324a, 8282654; Claude memory vercel-personal-team-cost-drivers
  • 2026-07-27 | Shipped performance work, social preview fixes, restored library navigation and refined landing motion. Source: commits 4ed5350, 54a9069, 2d60ed7
  • 2026-07-16 | Renamed the Design IDE direction to Fieldwork and added typed annotation layers and multiple pen tools while preserving Loop's unresolved operator-shell boundary. Source: Private Discord message 1527032191513792674, 2026-07-15
  • 2026-07-14 | Added the Design IDE direction and project boundary: Loop is a candidate operator shell, Agent Machines supplies execution, Sigil supplies constraints, and the editor must preserve DOM context, visual evidence, conversation history, and versioned outputs. Also recorded the goal of reducing idle Supabase and Vercel costs toward zero. private page
  • 2026-07-04 | Added file-native skill editability as product rationale: coding agents can update skill files through ordinary repo workflows. Source: X/@zachlloydtweets reply, 2026-06-17
  • 2026-07-03 | Deep-reviewed the public X launch artifact set and refreshed current GitHub/site status. Added launch hero, catalog, skill detail/raw endpoint, and refresh run-log evidence to the project page. Source: X/@kevskgs, 2026-04-28
  • 2026-07-03 | GitHub signal: pinned public TypeScript repo, MIT license, 13 stars, 2 forks; default branch main at c5a62a5ae0805ed71218703f22e1589f6145fb7c; no public tags returned by git ls-remote; https://loooop.dev returned 200. (Moved here from the page header on 2026-10-30.) Source: GitHub API, git ls-remote, curl -I, 2026-07-03
  • 2026-06-25 | Added current GitHub/pinned/deployment evidence for portfolio routing. Source: raw/github/kevin-repos-2026-06-25.json; raw/github/kevin-pinned-repos-2026-06-25.json; raw/github/deployment-check-2026-06-25.tsv
  • 2026-06-18 | Re-synced current README/FAQ facts: Loop now describes itself as an operator desk for source-backed skills; catalog has 100+ verified skills with many at v16-v21; refresh is Brave-first with optional Firecrawl/Serper/Tavily/Jina; cron only dispatches @vercel/queue jobs; FAQ describes 70+ MCP servers, Operator pricing/features, verified authors, and Vercel Sandbox agent studio. Source: loop README + loop/lib/faq-data.ts, 2026-06-18
  • 2026-06-17 | Referenced in Vercel Eve and ZCode — new agent-framework / coding-agent entrants (GLM-5.2-powered ZCode; Vercel's filesystem-first eve) to compare against loop's skills/MCP catalog. private page
  • 2026-06-15 | Added the MIT license. Source: commit c5a62a5
  • 2026-06-13 | Added Shipping Beliefs section from the repo README (unattended automation, build the product logic + rent the plumbing, inspectable refreshes, managed primitives as a feature) and linked it to Build, Don't Buy as Kevin's dogfooding proof. Normalized repo URL casing (/Loop → /loop), credited the friend who suggested the name, and cross-linked AI SDK HarnessAgent. Source: loop/README.md, 2026-06-13
  • 2026-05-31 | Architecture re-synced from the repo README: the cron is now an orchestrator only - @vercel/queue fans out one worker per skill (POST /api/refresh/skill). Research default switched to Brave Search + page fetch (Firecrawl/Serper/Tavily/Jina optional per user). Added an Operator tier ($5/mo): unlimited automations, model pick, Stripe Connect marketplace payouts. Catalog reached 100+ verified skills (v16–v21) after weeks of autonomous refresh; dynamic step budget reserves 5 steps for revision. Stack leans on Vercel primitives (AI Gateway, Queue, Sandbox, Blob, Cron). Source: loop/README.md + loop/lib/faq-data.ts, 2026-05-31
  • 2026-05-11 | Documented shared agent/CSS enforcement stack with wiki brain: CSS UI Enforcement, Lean Ctx bootstrap for Cursor sessions touching Loop. private page
  • 2026-05-05 | Merged PR #1: middleware had been returning 404 for the public raw-skill reads documented in llms.txt, so the fix unblocked them, dropped auth pages from the sitemap and added noindex. Source: gh api pulls/1; middleware.ts comment
  • 2026-04-29 | Automation system fixes: forked skills can now be unpaused, automations can be edited post-creation, forking duplicates automation config. maxDuration export added to refresh route to prevent Vercel cron timeout. Vercel Analytics integrated. Source: Cursor transcript, 2026-04-29
  • 2026-04-28 | Public X release post shipped: Loop framed as an open-source operator desk for agent skills that tracks source dependencies and auto-refreshes playbooks with versioned diffs. Source: X/@kevskgs, 2026-04-28
  • 2026-04-28 | Twitter OpenGraph and OG images fixed for Discord and other platforms. Domain purchased: ptd.quest (cross-project). Google Search Console homepage URL ownership verification resolved for loooop.dev. Source: Cursor transcript, 2026-04-28
  • 2026-04-27 | Public launch. Free and open source at loooop.dev. Catalog ships with 10+ actively-refreshed skills across Frontend, A2A, Security, and SEO categories. MCP catalog with 10 servers. FAQ added ("why does loop have 4 o's"). MCP pages built for browsing imported servers. private page
  • 2026-04-27 | Landing page built with real skill/MCP data and actual automation schedule. Shader effects (Plasma, Dither, WaveDistortion) explored for hero section. Logo redesigned using golden ratio. Source: Cursor transcript, 2026-04-27
  • 2026-04-13 | Project page created. Core architecture defined: Supabase + Clerk + Stripe + Vercel AI SDK + Firecrawl. private page
  • 2026-04-06 | Early development: sandbox UI completely redesigned. Modals improved and aligned with aesthetic. Icons expanded throughout app. 404 page created. Free search alternatives explored to replace Firecrawl (user ran out of credits) - users can now add their own API keys for paid search tools. Source: Cursor transcript, 2026-04-06
  • 2026-04-05 | Initial build sessions. Supabase and Clerk API keys configured. Dev server running. Source: Cursor transcript, 2026-04-05
  • 2026-03-28 | First commit: "feat: bootstrap loop app". Source: commit a6fd4f6