{"id":50726990,"url":"https://github.com/thesongzhu/friday","last_synced_at":"2026-06-27T06:01:03.690Z","repository":{"id":351465411,"uuid":"1179415189","full_name":"thesongzhu/Friday","owner":"thesongzhu","description":"AI","archived":false,"fork":false,"pushed_at":"2026-06-20T08:25:31.000Z","size":189516,"stargazers_count":917,"open_issues_count":1,"forks_count":118,"subscribers_count":139,"default_branch":"main","last_synced_at":"2026-06-20T09:20:37.059Z","etag":null,"topics":["agents","ai-agents","ai-assistant","automation","codex","friday","local-first","mobile-app","openai","personal-assistant","self-hosted","workflow"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thesongzhu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-12T02:16:53.000Z","updated_at":"2026-06-20T08:25:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/thesongzhu/Friday","commit_stats":null,"previous_names":["thesongzhu/friday"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/thesongzhu/Friday","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesongzhu%2FFriday","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesongzhu%2FFriday/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesongzhu%2FFriday/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesongzhu%2FFriday/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thesongzhu","download_url":"https://codeload.github.com/thesongzhu/Friday/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesongzhu%2FFriday/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34843147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai-agents","ai-assistant","automation","codex","friday","local-first","mobile-app","openai","personal-assistant","self-hosted","workflow"],"created_at":"2026-06-10T05:00:35.200Z","updated_at":"2026-06-27T06:01:03.681Z","avatar_url":"https://github.com/thesongzhu.png","language":"TypeScript","funding_links":[],"categories":["Openai"],"sub_categories":["Usage"],"readme":"\u003cp align=\"right\"\u003e\n  \u003ca href=\"README.zh-CN.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eFriday\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eYour private control plane for AI agents.\u003c/strong\u003e\u003cbr\u003e\n  Hand it a goal. It routes each step to an AI, checks the work, asks before anything risky, and remembers what you told it — so you're steering, not babysitting. You hold the keys.\u003cbr\u003e\n  Local-first kernel · BYOK · Approval-first · Human-controlled · Evidence-backed\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Node-%E2%89%A522-brightgreen?style=flat-square\" alt=\"Node \u003e=22\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue?style=flat-square\" alt=\"MIT\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/npm-%40thesongzhu%2Ffriday-red?style=flat-square\" alt=\"@thesongzhu/friday\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Release%20Truth-public%20v1%20local%20candidate-blue?style=flat-square\" alt=\"Release Truth: public v1 local candidate\"\u003e\n  \u003cimg src=\"https://github.com/thesongzhu/Friday/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Friday isn't a model, and it isn't a chatbot.** The \"brains\" are the cloud AIs *you* already pay for (BYOK: Codex, Claude, DeepSeek, …). Friday is the **boss that puts them to work** — and the boss, plus your keys, your data, and your memory, all live on your own machine. **You own the boss; you just rent the brains.**\n\n## What Is Friday?\n\nThe trick with AI agents isn't prompting them yourself all day — it's building **the loop that prompts them for you**. Friday is that loop, turned into a product and made safe:\n\n\u003e **finds the work → hands it to an AI → checks it actually did it → writes down what's done → picks the next thing** — the system nags the agents, so you don't have to.\n\nUnder the hood it runs Codex, Claude, and DeepSeek like a **metered crew** — cheap models do the thinking and planning, pricey ones do the heavy lifting — keeps the receipts, and hits pause on anything risky until you say go.\n\n## How The Loop Works\n\n```\n        your goal\n           │\n           ▼\n   route ── pick an AI for this step  (you can re-route)\n           │\n           ▼\n   execute ── governed: risky steps pause for your approval\n           │\n           ▼\n   verify ── prove it's really done  (don't trust \"I'm done\")\n           │\n           ▼\n   remember ── candidate → you confirm → it remembers\n           │\n           └──────────────► the next thing\n```\n\nThe leg everyone else skips is **verify**. An agent grading its own homework will absolutely cut corners — so in Friday, \"done\" has to come with a **receipt stapled to it**. A model saying *\"ok,\"* or a process that just quietly exits, doesn't count on its own.\n\nTwo more things keep it from feeling like a dumb dispatcher: if your goal is vague, Friday **asks you what you actually meant** instead of guessing — and burns zero tokens until it's clear; and when a job needs both coding *and* big-picture synthesis, it can let one model write the code and only tap a second one in **once the first has proven it's done**.\n\n## What Makes It Different (And Hard To Copy)\n\nCodex and Claude each hand you one great agent. Neither will police the *other* for you, and neither puts the controls on your side. Friday sits one floor up — across vendors, on your machine — with a few guarantees that are **baked into how it's built**, not a checkbox the same program could flip on itself:\n\n- **We never gave Friday a pen.** It carries the key that *checks* your signature, never the one that *writes* one — so on anything dangerous it can't fake your \"yes\"; the sign-off has to come from your own hand, offline, on your own device.\n- **A model can't wave its own risky move through.** Plain read-only stuff never needs your sign-off, but anything that changes the world — or smells risky — can only ever land on *needs your OK* or *nope* inside the kernel, never *sure, go ahead*. And an agent can't rubber-stamp its own side effects.\n- **\"Done\" is never just a model's word for it.** A task can't flip to \"complete\" unless a proof receipt is actually clipped to its record — enforced down in the database, where no clever code path can sneak around it. No receipt, no done.\n- **Nothing becomes a real memory behind your back.** Friday floats facts as *candidates*; not one graduates to a real memory until you say yes — so a poisoned \"fact\" just sits there, harmless. And when it recalls something, it's yours only, scrubbed of secrets before any model ever sees it.\n- **No sneaky model swaps.** Friday picks each model with a quick, free, zero-token decision *before* it spends a cent; and if it ever has to fall back to a backup, the bill honestly says which model actually answered. It never quietly swaps in something else and hands you a mystery charge.\n- **Tamper-evident on purpose.** Every routed agent turn lands as one all-or-nothing entry — who, what, how much — in a hash-chained audit log, so quietly editing the past snaps the chain.\n\nThis is the gap a single-vendor tool will never close for you: **a neutral referee, across vendors, on your side.**\n\n## Why It's Built This Way\n\nCoding agents got scary-good scary-fast — but they still hit a wall on long jobs, and they'll cheerfully cut corners or claim they finished something they didn't. The 2026 shift is **loop engineering**: stop hand-prompting agents, and build the system that finds the work, hands it out, **checks it**, records what's done, and picks what's next. Friday takes that idea and builds the missing pieces for real:\n\n- **Verification is the whole ballgame.** An agent that grades itself can't be trusted — so \"done\" has to come with proof, not a pinky-promise. It's the part most tools skip, and the part Friday is built around.\n- **Governance belongs on your side of the table.** The horror stories are well-documented — memory quietly poisoned, private data sent somewhere it shouldn't, spend running away, a destructive command. So approval, a context passport, metering, and audit all live in *your* kernel, not some vendor's cloud.\n- **Cross-vendor is the whole point.** Every vendor gives you one great agent and zero interest in refereeing the others. A neutral layer that runs them on your machine, controls on your side, is the seam none of them will fill.\n- **The model is rented, not married.** Friday deliberately isn't a model. Models change every few months; the lasting value is the harness around them — routing, verification, memory, governance — and that part stays yours.\n\n## The Shape It's Growing Into\n\nA private AI chief-of-staff that lives on your phone and your desktop:\n\n- Hand it a goal in chat; it plans, spreads the work across models, and **shows you who it picked so you can overrule it**.\n- Risky steps show up as a **one-tap thing you sign**; safe stuff just happens. You also get a **trust dial** — crank it up to pre-approve batches of low-risk work, down to confirm every step. Irreversible things always ask.\n- It's **built to get to know you the more you use it** — turning finished work into a feel for your preferences and your world that, once *you* confirm it, is wired to quietly color later runs (that part isn't switched on yet, and reflexes stay on their own governed leash).\n- **Skills are welcome but kept on a leash**: bring a reviewed skill, sign to switch it on, and it only runs after you sign off on that exact use — boxed into its own little sandbox. Friday won't write skills for you; it just governs the ones you bring.\n- Every agent — **and every sidekick it spins up** — is built to run inside a revocable trust grant with spend, run, and tool limits, where a child can never get *wider* powers than its parent.\n- It can look over your shoulder while you code, take jobs in from your channels (Telegram, …), and pick up scheduled work — all under the same rules.\n\nYou stay the boss the whole way: **the brains are rented, the controller is yours.**\n\n## Principles\n\n**Local-first kernel · BYOK · Approval-first · Human-controlled · Evidence-backed**\n\n\u003e *Local-first* here means the **controller, your keys, your data, and your memory** live on your machine — the models themselves are cloud APIs you plug in. Friday is the local **kernel**, not a local model.\n\n## Status\n\nFriday is a **public v1 local candidate**, shipped via npm / source. The engine and safety substrate — the goal→work spine, routing, governance, metering, audit, and sealed transport — are all in place, and you bring your own keys. Fair warning, since honesty is the whole point: the guarantees above are properties of how it's built *today*; the live behaviors have so far only run on internal and self-test traffic, **not real end-user workloads**, and the more autonomous bits ship dark behind off-by-default flags. Capability-acquisition and self-upgrade are **review-gated works in progress**, not a full-autopilot promise. Friday does what it can safely do, **stops clearly when it needs you**, and always leaves the receipts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesongzhu%2Ffriday","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesongzhu%2Ffriday","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesongzhu%2Ffriday/lists"}