{"id":50832979,"url":"https://github.com/figs-so/openfigs","last_synced_at":"2026-06-14T01:09:56.082Z","repository":{"id":363295034,"uuid":"1261563822","full_name":"figs-so/openfigs","owner":"figs-so","description":"A small, open, file-based skeleton for building back-office AI-employee agents that report to a human through Figs.","archived":false,"fork":false,"pushed_at":"2026-06-08T08:32:42.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T10:19:18.495Z","etag":null,"topics":["agents","ai-agents","ai-employees","automation","back-office","claude-code","codex","figs"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/figs-so.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-06T21:29:26.000Z","updated_at":"2026-06-08T08:32:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/figs-so/openfigs","commit_stats":null,"previous_names":["figs-so/openfigs"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/figs-so/openfigs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figs-so%2Fopenfigs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figs-so%2Fopenfigs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figs-so%2Fopenfigs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figs-so%2Fopenfigs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/figs-so","download_url":"https://codeload.github.com/figs-so/openfigs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figs-so%2Fopenfigs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34305846,"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-13T02:00:06.617Z","response_time":62,"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-employees","automation","back-office","claude-code","codex","figs"],"created_at":"2026-06-14T01:09:55.198Z","updated_at":"2026-06-14T01:09:56.065Z","avatar_url":"https://github.com/figs-so.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenFigs\n\n**A small, open, file-based skeleton for building one back-office AI employee — an agent that owns\na recurring job, learns from its work, and reports to a human through [Figs](https://app.figs.so).**\n\nThe agent *runtime* (Claude Code, Codex, opencode) is commoditizing. What doesn't: a good way to\n**build** an agent you can trust with a recurring, consequential job, and the **trust layer** that\nlets you actually delegate it. OpenFigs is the build side; Figs is the trust layer.\n\n\u003e **OpenClaw, but for enterprise** — *you can see everything.* A focused, single-purpose employee\n\u003e you can trust, not one opaque super-agent you install. You **clone** a transparent, file-based\n\u003e agent (plain files + prompts you read end to end) and run it on the runtime you already use. Want\n\u003e a team? Run one per job and point them at the same Figs workspace — the org chart draws itself.\n\u003e Nothing hidden, no risky third-party sprawl; the [Figs](https://app.figs.so) app is the live\n\u003e window onto what they're doing.\n\n## Get started\n\n**Requires [Node](https://nodejs.org) ≥ 18.** Scaffold one employee in a line:\n\n```bash\nnpm create openfigs@latest my-agent\n```\n\nThat fetches the latest skeleton, wires up the runtime symlink, and runs **`figs init`** — so your\nagent has a local identity + activity journal and is ready to work, **no account needed**.\n(`npx create-openfigs my-agent` is equivalent — as are `yarn create openfigs` and\n`pnpm create openfigs`.) Then:\n\n```bash\ncd my-agent\n# fill in AGENTS.md (role, mandate, the loop) + .figs/agent.json (your charter)\n# work — figs records you locally from day one:\n#   figs report / checkpoint / ask / answer / close   (no account needed)\n# when your team should see it, connect to Figs:\nnpx @figs-so/cli@latest login     # opens your browser — sign up \u0026 approve\nnpx @figs-so/cli@latest link      # join a workspace\nnpx @figs-so/cli@latest push      # appear on the org chart\n```\n\n\u003e **One repo = one employee.** A new, distinct job is a **new** agent — run `npm create openfigs`\n\u003e again, never copy a folder (a copy carries the original's identity; see `AGENTS.md`). A \"fleet\"\n\u003e isn't a directory of agents — it's a **Figs workspace** that several agents report to.\n\n\u003e **⚠️ Don't \"Download ZIP\" from GitHub.** This repo uses a symlink (`CLAUDE.md` → `AGENTS.md`) so\n\u003e Claude Code, Codex, and opencode all read one source of truth. ZIP export turns it into a broken\n\u003e text file; `git clone` and the commands above preserve it (run `npm run fix-symlinks` to repair).\n\n## Philosophy\n\n- **Infra, not dictation** — conventions + guardrails in plain files; *what* the agent does is\n  between it and its user.\n- **The agent is an employee** — it does the job, learns from its work, keeps its own code clean,\n  and reports for sign-off.\n- **One employee, one job** — a focused agent beats a sprawling one; a new job is a new agent.\n- **Trust via visibility, not prohibition** — agents self-improve and loudly flag what they changed;\n  humans sign off on outcomes.\n- **Small \u0026 in control** — plain files, auditable, no heavy framework. Runtime-agnostic via `AGENTS.md`.\n\n## How it works\n\n- **This repo is one agent** — `AGENTS.md` (its operating guide) + `MEMORY.md` + `SANITY.md` +\n  `.figs/` (its charter, contract, and activity journal). Start with [`AGENTS.md`](./AGENTS.md).\n- **Account-free from day one** — `figs init` (run by the scaffolder) gives a local identity + a\n  work journal; the whole loop (record jobs, raise asks, recover across sessions, validate) runs\n  with **no account**. Linking adds the hosted layer — publishing, the org chart, your humans' replies.\n- **The fleet is a workspace** — run one agent per job and point them all at the same Figs\n  workspace; the org chart groups them by each agent's `department`. You don't nest agents in folders.\n- **Runtime-agnostic** — `AGENTS.md` is canonical; `CLAUDE.md` symlinks to it, so Claude Code,\n  Codex, and opencode read the same source of truth.\n\n## Report to your human (Figs)\n\nEvery agent keeps a **local activity journal** (`.figs/runs.jsonl` · `asks.jsonl` ·\n`messages.jsonl` · `artifacts/`) — useful on its own. To give your team a shared, read-only window\n— the org chart, what each agent's handling, what's done, and what needs a human — connect to\n**[Figs](https://app.figs.so)** (`figs login` → `figs link` → `figs push`). Day to day the agent\nrecords itself with the CLI's verbs — **`figs checkpoint`** (open a job), **`figs report`** (its\noutcome), **`figs ask`** (a `question` or `sign-off`), **`figs answer`** (transcribe a human's\nreply), **`figs close`** (end an ask, citing the reply) — each pushes itself when linked. The full\nverb guide is canonical at **[app.figs.so/llms.txt](https://app.figs.so/llms.txt)**. (The CLI is\nopen source; the app is a hosted product.)\n\n## Staying current\n\nA clone is **yours** — you and your agent edit it — so skeleton improvements are never pushed into\nit. Instead: `CHANGELOG.md` records every skeleton revision, your `package.json` `version` marks the\nlast one you reviewed, and `npm run check-skeleton` (the `skeleton-updates` skill — your agent runs\nit during upkeep) prints what you haven't seen, so you decide together what to adopt. Humans:\n**Watch → Releases** on this repo does the same job.\n\n## The Figs ecosystem\n\nFigs is one stack in three pieces — **build → report → govern**. Land on any repo; here's the whole picture:\n\n| Layer | Repo | License | Role |\n|---|---|---|---|\n| 🏗️ Build | **[OpenFigs](https://github.com/figs-so/openfigs)** | MIT | build a trustworthy back-office AI employee — conventions + skeleton, runtime-agnostic — **← you're here** |\n| 📤 Report | **[`.figs` + CLI](https://github.com/figs-so/figs)** | MIT | the open standard an agent reports its state in |\n| 👁️ Govern | **[Figs app](https://app.figs.so)** | hosted | the org chart + handoff inbox humans read |\n\n## Status\n\nEarly — **OpenFigs 1.0.0** (figs-spec v2), MIT licensed. Distilled from real, dogfooded agents\n(a finance/compliance fleet and a product-analytics fleet).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffigs-so%2Fopenfigs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffigs-so%2Fopenfigs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffigs-so%2Fopenfigs/lists"}