<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    
    <title>GitHub Weekly Trending Repositories</title>
    <description>Weekly Trending Repositories on GitHub</description>
    
    <pubDate>Wed, 12 Aug 2026 04:25:03 GMT</pubDate>
    <link>https://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>cloudflare/computer</title>
      <link>https://github.com/cloudflare/computer</link>
      <description>&lt;p&gt;Give your agent a computer 👾&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Cloudflare Computer&lt;/h1&gt; 
&lt;p&gt;Cloudflare Computer is a virtual filesystem that lives inside a Durable Object. The Durable Object holds the authoritative state in SQLite and exposes one pluggable execution surface through &lt;code&gt;workspace.runtime&lt;/code&gt;. Three backends ship today:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Container&lt;/strong&gt; projects the SQLite state into a sandbox container as a real FUSE mount. A sandbox-side daemon (&lt;code&gt;computerd&lt;/code&gt;) mounts the state as a filesystem and syncs changes back over a capnweb RPC channel. Full Linux userland, real binaries, real network.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Isolate shell&lt;/strong&gt; runs &lt;a href=&quot;https://github.com/vercel-labs/just-bash&quot;&gt;just-bash&lt;/a&gt; in a Dynamic Worker. It reaches the authoritative Workspace over Workers RPC, so there is no second store or sync round trip.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Isolate JavaScript&lt;/strong&gt; runs an ECMAScript module in a fresh Dynamic Worker with structured input/results, durable relative imports, configured libraries, Workspace-backed &lt;code&gt;node:fs/promises&lt;/code&gt;, and trusted &lt;code&gt;ws:git&lt;/code&gt; and &lt;code&gt;ws:artifacts&lt;/code&gt; modules.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;A Workspace may register multiple backends under stable IDs. &lt;code&gt;workspace.runtime.exec(source, { backend })&lt;/code&gt; is the single execution entry point; the selected backend defines whether &lt;code&gt;source&lt;/code&gt; is a shell command or an ECMAScript module. Backends connect lazily on first use.&lt;/p&gt; 
&lt;p&gt;Workspace can also be constructed without a backend at all, giving callers the filesystem on its own.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;PREVIEW ONLY&lt;/strong&gt; This package is provided as a preview for feedback only. APIs are unstable and the design is subject to change.&lt;/p&gt; 
 &lt;p&gt;Suitable for experiments, exploration and prototypes. It is NOT suitable for production use at this time.&lt;/p&gt; 
 &lt;p&gt;The specification under &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/docs/&quot;&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/a&gt; is forward-looking — read it for intent, not as description of the code today.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Using it&lt;/h2&gt; 
&lt;p&gt;If you want to build on Cloudflare Computer, install &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/computer/README.md&quot;&gt;&lt;code&gt;@cloudflare/computer&lt;/code&gt;&lt;/a&gt; and follow that package&#39;s README — it has the installation steps, the entrypoint map, and worked examples of the &lt;code&gt;fs&lt;/code&gt; and &lt;code&gt;runtime&lt;/code&gt; surfaces.&lt;/p&gt; 
&lt;p&gt;To contribute feedback, see &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/CONTRIBUTING.md&quot;&gt;&lt;code&gt;CONTRIBUTING.md&lt;/code&gt;&lt;/a&gt;. Approved collaborators should follow &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/COLLABORATORS.md&quot;&gt;&lt;code&gt;COLLABORATORS.md&lt;/code&gt;&lt;/a&gt; for setup, build, and test instructions.&lt;/p&gt; 
&lt;h2&gt;Examples&lt;/h2&gt; 
&lt;p&gt;The &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples&quot;&gt;&lt;code&gt;examples/&lt;/code&gt;&lt;/a&gt; directory holds runnable consumers of the public surface. Each is a Worker workspace with its own README.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/container&quot;&gt;&lt;code&gt;examples/container&lt;/code&gt;&lt;/a&gt; — runs &lt;code&gt;computerd&lt;/code&gt; inside a container, mounts a workspace, and talks to a Durable Object over capnweb. A &lt;code&gt;write&lt;/code&gt; / &lt;code&gt;read&lt;/code&gt; / &lt;code&gt;exec&lt;/code&gt; HTTP surface.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/worker-shell&quot;&gt;&lt;code&gt;examples/worker-shell&lt;/code&gt;&lt;/a&gt; — same HTTP surface as the container example, but the shell runs &lt;a href=&quot;https://github.com/vercel-labs/just-bash&quot;&gt;just-bash&lt;/a&gt; in a Dynamic Worker loaded through &lt;code&gt;env.LOADER&lt;/code&gt;. No container.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/worker-javascript&quot;&gt;&lt;code&gt;examples/worker-javascript&lt;/code&gt;&lt;/a&gt; — mirrors &lt;code&gt;worker-shell&lt;/code&gt;, but &lt;code&gt;exec&lt;/code&gt; evaluates an ECMAScript module in a Dynamic Worker instead of running a shell command.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/egress&quot;&gt;&lt;code&gt;examples/egress&lt;/code&gt;&lt;/a&gt; — sends one URL through the container, Worker shell, and Worker JavaScript backends with matching &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;all&lt;/code&gt;, or custom egress policies.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/think&quot;&gt;&lt;code&gt;examples/think&lt;/code&gt;&lt;/a&gt; — a &lt;a href=&quot;https://www.npmjs.com/package/@cloudflare/think&quot;&gt;&lt;code&gt;@cloudflare/think&lt;/code&gt;&lt;/a&gt; chat agent that uses the workspace as its working directory, reachable from a terminal.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/think-compare-runtimes&quot;&gt;&lt;code&gt;examples/think-compare-runtimes&lt;/code&gt;&lt;/a&gt; — a web UI that runs the same agent task against the container and worker runtimes side by side.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/tutorial&quot;&gt;&lt;code&gt;examples/tutorial&lt;/code&gt;&lt;/a&gt; — a step-by-step build: one endpoint, one agent that writes a markdown recipe card on the host and runs &lt;code&gt;pandoc&lt;/code&gt; on it in the container to produce a PDF.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/artifacts&quot;&gt;&lt;code&gt;examples/artifacts&lt;/code&gt;&lt;/a&gt; — generates a Worker project in a workspace and publishes it to Cloudflare Artifacts as a clone-ready repo.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/examples/assets&quot;&gt;&lt;code&gt;examples/assets&lt;/code&gt;&lt;/a&gt; — turns a prompt into an image with Workers AI, writes it to the workspace, and returns a shareable link through &lt;code&gt;@cloudflare/computer/assets&lt;/code&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Repository layout&lt;/h2&gt; 
&lt;p&gt;The repo is a small monorepo. Each package has its own README with package-specific status and usage notes.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/dofs/README.md&quot;&gt;&lt;code&gt;packages/dofs&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;@cloudflare/dofs&lt;/code&gt;) — Durable Object SQLite-backed virtual filesystem, sync protocol building blocks, and a &lt;code&gt;@platformatic/vfs&lt;/code&gt; provider for Node.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/rpc/README.md&quot;&gt;&lt;code&gt;packages/rpc&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;@cloudflare/computer-rpc&lt;/code&gt;) — capnweb wire types and server/client helpers shared between the Durable Object and &lt;code&gt;computerd&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/computerd/README.md&quot;&gt;&lt;code&gt;packages/computerd&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;@cloudflare/computerd&lt;/code&gt;) — the &lt;code&gt;computerd&lt;/code&gt; daemon: a FUSE mount plus HTTP/WebSocket RPC server that runs inside the sandbox container.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/computer/README.md&quot;&gt;&lt;code&gt;packages/computer&lt;/code&gt;&lt;/a&gt; (&lt;code&gt;@cloudflare/computer&lt;/code&gt;) — the top-level Computer package consumed by Durable Objects. Work in progress.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/packages/computer-computerd-linux-x64/README.md&quot;&gt;&lt;code&gt;packages/computer-computerd-linux-x64&lt;/code&gt;&lt;/a&gt; — private Docker image context for the prebuilt &lt;code&gt;computerd&lt;/code&gt; linux-x64 binary. The image, not an npm package, is the release artifact.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Performance&lt;/h2&gt; 
&lt;p&gt;computerd&#39;s FUSE mount beats real disk on metadata-heavy work and trails it on large sequential I/O. See &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/docs/19_performance.md&quot;&gt;&lt;code&gt;docs/19_performance.md&lt;/code&gt;&lt;/a&gt; for the full &lt;code&gt;fs-bench&lt;/code&gt; numbers, a &lt;code&gt;cloudflare/sandbox-sdk&lt;/code&gt; &lt;code&gt;npm install&lt;/code&gt; comparison, and how to reproduce them.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/docs/README.md&quot;&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/a&gt; — design specification. Forward-looking; treat as intent.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/docs/19_performance.md&quot;&gt;&lt;code&gt;docs/19_performance.md&lt;/code&gt;&lt;/a&gt; — filesystem benchmarks.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We accept bug reports, fix proposals, feature requests, and design proposals through issues and discussions. We do not accept unsolicited pull requests. See &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/CONTRIBUTING.md&quot;&gt;&lt;code&gt;CONTRIBUTING.md&lt;/code&gt;&lt;/a&gt; for the public contribution paths.&lt;/p&gt; 
&lt;p&gt;Approved collaborators should follow &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/COLLABORATORS.md&quot;&gt;&lt;code&gt;COLLABORATORS.md&lt;/code&gt;&lt;/a&gt; for setup, formatting, testing, commit message, and pull request conventions.&lt;/p&gt; 
&lt;p&gt;If you&#39;re working in this repo as an agent, start with &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/AGENTS.md&quot;&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/a&gt; and the skills under &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/.agents/skills/&quot;&gt;&lt;code&gt;.agents/skills/&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;MIT. See &lt;a href=&quot;https://raw.githubusercontent.com/cloudflare/computer/main/LICENSE&quot;&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>huangruiteng/loopx</title>
      <link>https://github.com/huangruiteng/loopx</link>
      <description>&lt;p&gt;Lightweight loop engineering state kernel for long-running AI agent teams. Agent-loop agnostic across Codex, Claude Code, and other coding agents, with durable goals, quota-aware auto-wake, executable todos, evidence logs, and verifiable handoffs.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1 align=&quot;center&quot;&gt;LoopX&lt;/h1&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/loopx-social-preview.png&quot; alt=&quot;LoopX loop engineering social preview banner&quot; width=&quot;560&quot; /&gt; 
 &lt;p&gt;&lt;strong&gt;The open, provider-neutral, stateful control plane for long-running agents.&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;sub&gt;Keep objectives, gates, todos, evidence, quota, and handoffs stable while Codex, Claude Code, Cursor, or your own runtime executes bounded turns.&lt;/sub&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/102379?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-102379&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/102379&quot; alt=&quot;huangruiteng/loopx on Trendshift&quot; width=&quot;220&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-MIT-blue.svg?sanitize=true&quot; alt=&quot;License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/huangruiteng/loopx/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/huangruiteng/loopx?display_name=tag&quot; alt=&quot;Release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/XmGgQyCFZd&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/pyproject.toml&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/python-3.11%2B-blue.svg?sanitize=true&quot; alt=&quot;Python&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/public-private-boundary.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/control--plane-local--first-brightgreen.svg?sanitize=true&quot; alt=&quot;Local first&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/release-readiness.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/status-loop%20agents%20early-orange.svg?sanitize=true&quot; alt=&quot;Loop Agents&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://huangruiteng.github.io/loopx/&quot;&gt;Public website&lt;/a&gt; · &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/&quot;&gt;Docs&lt;/a&gt; · &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/book/&quot;&gt;Developer Book&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/#try-loopx&quot;&gt;Try LoopX&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/#evidence&quot;&gt;See real loops&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/#why-loopx&quot;&gt;How it works&lt;/a&gt; · &lt;a href=&quot;https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg&quot;&gt;User manual&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/README.zh-CN.md&quot;&gt;简体中文&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;把会干活的 Agent，接成可管理、可复盘、可持续改进的数字员工。&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;p&gt;Open and provider-neutral, LoopX is a lightweight state kernel and local-first control plane for loop engineering. It keeps long-running work reviewable, restartable, and easier to hand off across turns, tools, and agents without replacing the runtime that performs the work.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Loop engineering for long-running AI agents and peer agent teams.&lt;/strong&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Keep the loop moving. Keep the judgment human.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Learn LoopX&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Developer Book&lt;/strong&gt; - the curated bilingual path from control-plane foundations to project onboarding and developer contributions. &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/book/&quot;&gt;中文版&lt;/a&gt; · &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/book/en/&quot;&gt;English&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Getting started&lt;/strong&gt; - install, connect a project, and run your first governed loop. &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/getting-started.md&quot;&gt;Guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Docs&lt;/strong&gt; - the full reference and operations site. &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/&quot;&gt;LoopX Docs&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a id=&quot;how-it-works&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Why LoopX&lt;/h2&gt; 
&lt;p&gt;An agent can finish a task in one session. Long-running work is harder: objectives change, owner decisions appear, evidence goes stale, agents hand work to peers, and a scheduler can keep spending after no useful transition remains. Chat memory and a timer are not enough to govern that.&lt;/p&gt; 
&lt;p&gt;LoopX keeps the durable control state in one compact layer:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;objective / issue / project
   │
   ▼
LoopX state: objective + gates + todos + scope + evidence + quota
   │
   ├─ human judgment needed? ── yes ─▶ ask a concrete question and wait
   │
   ├─ safe fallback available? ──────▶ run one bounded agent slice
   │
   ▼
Codex / Claude Code / Cursor / shell agent executes one turn
   │
   ▼
write evidence + handoff + next todo ─▶ quota decides the next tick
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Agent runtimes execute the work. LoopX governs the state that lets engineering, research, discovery, and operations loops continue across runs. It is not another agent framework or a provider-specific orchestration runtime.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/control-plane-board.svg?sanitize=true&quot; alt=&quot;LoopX control-plane board&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;A useful mental model is an &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/development/control-plane-course/00-concept-primer.md&quot;&gt;agent-native Kanban for long-running work&lt;/a&gt;&lt;/strong&gt;. Cards carry identity, authority, evidence, and continuation. Moves are validated operators such as claim, gate, monitor, and writeback. The board is a projection; LoopX state remains the source of truth.&lt;/p&gt; 
&lt;p&gt;Registered agents are peers. Claims, leases, task boundaries, capabilities, and typed continuation decide who acts next; no durable leader identity is required.&lt;/p&gt; 
&lt;p&gt;LoopX is useful when you run:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;multi-day engineering, research, benchmark, or experiment objectives;&lt;/li&gt; 
 &lt;li&gt;issue and PR loops that must preserve scope, evidence, and review state;&lt;/li&gt; 
 &lt;li&gt;recurring heartbeat or monitor work;&lt;/li&gt; 
 &lt;li&gt;projects with owner, safety, publication, or private-data gates;&lt;/li&gt; 
 &lt;li&gt;peer-agent teams where ownership, leases, and handoff matter;&lt;/li&gt; 
 &lt;li&gt;creator, research, or operations workflows whose progress must remain legible to a non-engineering operator.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;LoopX is not an autonomous production controller. Dangerous permissions, publishing, production writes, and final ownership stay with the human.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;see-it-in-action&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Evidence&lt;/h2&gt; 
&lt;p&gt;These are not one-turn demos. The public OpenViking contribution sequence and the redacted, owner-run Auto ML showcase each span &lt;strong&gt;200+ hours of elapsed loop lifetime&lt;/strong&gt; across many bounded turns, decisions, and evidence updates. Elapsed lifetime is wall-clock project time. It is not 200 hours of continuous model execution or a claim of unattended production autonomy. Open each visual to inspect the public-safe graph, evidence branches, and decisions preserved across turns.&lt;/p&gt; 
&lt;h3&gt;Open-Source Issue Fix&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;200+ hour public contribution arc: PR delivery and reusable fix knowledge evolve together.&lt;/strong&gt;&lt;/p&gt; 
&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/long-running-loop-openviking-trajectory.png&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/long-running-loop-openviking-trajectory.png&quot; alt=&quot;Open-source issue-fix trajectory linking focused PR delivery with reusable LoopX capabilities&quot; width=&quot;420&quot; /&gt; &lt;/a&gt; 
&lt;p&gt;LoopX&#39;s creator uses this path as an &lt;a href=&quot;https://github.com/volcengine/OpenViking/pulls?q=is%3Apr+author%3Ahuangruiteng&quot;&gt;OpenViking contributor&lt;/a&gt;. The represented public contribution sequence spans more than 200 elapsed hours from its first PR creation to the latest represented review or update. The &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/capabilities/issue-fix/README.md&quot;&gt;Issue-Fix capability&lt;/a&gt; keeps rolling repository context, revision-stamped fix knowledge, and reviewer-facing preferences separate; linked PRs plus current checkout source and tests remain authoritative.&lt;/p&gt; 
&lt;h3&gt;Auto ML Experiment&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Redacted owner-run showcase: a 200+ hour experiment arc keeps hypotheses, matched evidence, invalid lineages, running replicates, and promote/stop gates visible in one graph.&lt;/strong&gt;&lt;/p&gt; 
&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/long-running-loop-ml-experiment-trajectory.png&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/long-running-loop-ml-experiment-trajectory.png&quot; alt=&quot;Auto ML Experiment trajectory with experiment lineages, evidence gates, and promotion decisions&quot; width=&quot;760&quot; /&gt; &lt;/a&gt; 
&lt;p&gt;The redacted public-safe graph preserves decision lineage across that 200+ hour elapsed window. It is an owner-run showcase, not a claim of continuous compute, independent reproduction, a production result, or company or employer endorsement. The redacted image is not sufficient to reproduce the underlying experiment independently.&lt;/p&gt; 
&lt;h3&gt;Auto Research&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Reproducible public KNN demo: proposer, executor, and evaluator/promoter agents iterate in parallel while todo, quota, evidence, and targeted wake remain visible.&lt;/strong&gt;&lt;/p&gt; 
&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/auto-research-multi-agent-showcase.png&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/auto-research-multi-agent-showcase.png&quot; alt=&quot;Auto Research multi-agent workspace with proposer, executor, evaluator/promoter, todo, quota, evidence, and targeted wake activity&quot; /&gt; &lt;/a&gt; 
&lt;p&gt;This screenshot comes from LoopX&#39;s built-in exact-KNN demo. The public task, editable and protected files, deterministic CPU evaluator, and dev/held-out commands all live in this repository. Follow the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/use-cases/auto-research/decentralized-auto-research-showcase.md&quot;&gt;showcase walkthrough&lt;/a&gt; or the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/auto-research-command-path.md&quot;&gt;command path&lt;/a&gt; to reproduce the workflow; it is a demo result, not a production research claim.&lt;/p&gt; 
&lt;h3&gt;Used In Real Projects&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Independent user · &lt;code&gt;&amp;gt;13h&lt;/code&gt; C++ accuracy run.&lt;/strong&gt; The user reported that a multi-stage task stayed aligned, triggered public research, adopted a &lt;a href=&quot;https://github.com/DeusData/codebase-memory-mcp&quot;&gt;public code-memory tool&lt;/a&gt;, and improved final precision. &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/cases/independent-cpp-accuracy-long-run.md&quot;&gt;Read the evidence boundary&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Independent user · &lt;code&gt;4d&lt;/code&gt; unattended run.&lt;/strong&gt; The user reported four days without human intervention, useful ongoing work, and a periodic report surface. &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/cases/independent-four-day-unattended-agent.md&quot;&gt;Read the redacted case&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Independent user · &lt;code&gt;7&lt;/code&gt; merged PRs.&lt;/strong&gt; A LoopX-attributed Engine refactor is visible in a &lt;a href=&quot;https://github.com/zilliztech/mfs/issues/166&quot;&gt;public issue&lt;/a&gt; and seven merged PRs; attribution and the reported &lt;code&gt;1B+&lt;/code&gt; token scale remain user reports. &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/cases/independent-public-engine-refactor.md&quot;&gt;Inspect the case&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;These are the three strongest current cases, not the full inventory. Browse the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/README.md&quot;&gt;complete Showcase catalog&lt;/a&gt; for contributor cases, creator dogfooding, reproducible demos, and explicit evidence-strength labels.&lt;/p&gt; 
&lt;p&gt;More inspectable surfaces:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;the &lt;a href=&quot;https://huangruiteng.github.io/loopx/&quot;&gt;public homepage&lt;/a&gt; for the product narrative, quick start, and long-running evidence;&lt;/li&gt; 
 &lt;li&gt;the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/README.md&quot;&gt;complete Showcase catalog&lt;/a&gt; and its &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/index.html&quot;&gt;bilingual hosted index&lt;/a&gt;;&lt;/li&gt; 
 &lt;li&gt;the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md&quot;&gt;cross-runtime implementation review demo&lt;/a&gt;;&lt;/li&gt; 
 &lt;li&gt;the public &lt;a href=&quot;https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg&quot;&gt;user manual&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a id=&quot;quick-start&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Try LoopX&lt;/h2&gt; 
&lt;p&gt;Requirements: Python 3.11+, &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, and a macOS or Linux shell. Git is only needed for contributor clone/canary workflows. The Python package has no runtime dependencies outside the standard library.&lt;/p&gt; 
&lt;p&gt;Install without cloning:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://huangruiteng.github.io/loopx/install.sh | bash
export PATH=&quot;$HOME/.local/bin:$PATH&quot;
loopx doctor
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then connect from your project root:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /path/to/your-project
loopx connect
loopx status
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If the project has not been initialized and &lt;code&gt;connect&lt;/code&gt; tells you state is missing, use the guided path:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;loopx start-goal --guided --project . --goal-text &quot;Your long-running objective&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;LoopX should reuse existing state rather than overwrite it. Keep &lt;code&gt;.loopx/&lt;/code&gt;, &lt;code&gt;.codex/goals/&lt;/code&gt;, and &lt;code&gt;.local/&lt;/code&gt; ignored.&lt;/p&gt; 
&lt;h3&gt;Start From Your Agent&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Host&lt;/th&gt; 
   &lt;th&gt;Recommended start&lt;/th&gt; 
   &lt;th&gt;Loop driver&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex App&lt;/td&gt; 
   &lt;td&gt;Ask the agent to connect this project to LoopX, run &lt;code&gt;loopx doctor&lt;/code&gt;, preserve existing state, and report the current gate and next todo. Then use &lt;code&gt;$loopx &amp;lt;complex task&amp;gt;&lt;/code&gt; or choose &lt;code&gt;loopx&lt;/code&gt; from &lt;code&gt;/skills&lt;/code&gt;.&lt;/td&gt; 
   &lt;td&gt;Codex App heartbeat automation, refreshed from &lt;code&gt;quota should-run.scheduler_hint&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex App over SSH&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx agent-onboard --agent-type codex-app-ssh --project .&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;The returned visible &lt;code&gt;/goal &amp;lt;task_body&amp;gt;&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex CLI&lt;/td&gt; 
   &lt;td&gt;Start &lt;code&gt;codex&lt;/code&gt; in the project, ask it to connect and diagnose LoopX, then use &lt;code&gt;$loopx &amp;lt;complex task&amp;gt;&lt;/code&gt; or &lt;code&gt;/skills&lt;/code&gt;.&lt;/td&gt; 
   &lt;td&gt;Visible &lt;code&gt;/goal &amp;lt;task_body&amp;gt;&lt;/code&gt;; no hidden headless execution by default&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Code&lt;/td&gt; 
   &lt;td&gt;Install the opt-in adapter, then run &lt;code&gt;/loopx &amp;lt;task&amp;gt;&lt;/code&gt; followed by &lt;code&gt;/loop&lt;/code&gt;.&lt;/td&gt; 
   &lt;td&gt;Native Claude Code &lt;code&gt;/loop&lt;/code&gt; gated by LoopX&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;OpenCode&lt;/td&gt; 
   &lt;td&gt;Install the static command facade; opt in to &lt;code&gt;--with-goal-bridge&lt;/code&gt; for recurring goals.&lt;/td&gt; 
   &lt;td&gt;OpenCode command facade and explicit goal bridge&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Pi&lt;/td&gt; 
   &lt;td&gt;Install the opt-in goal extension with &lt;code&gt;loopx slash-commands --install --surface pi&lt;/code&gt;, then use &lt;code&gt;/loopx &amp;lt;task&amp;gt;&lt;/code&gt; from a trusted Pi session.&lt;/td&gt; 
   &lt;td&gt;Visible Pi goal extension gated by LoopX quota (&lt;code&gt;loopx_goal_activate&lt;/code&gt; + &lt;code&gt;agent_settled&lt;/code&gt; continuation)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Cursor, shell, or custom runner&lt;/td&gt; 
   &lt;td&gt;Use the installer and &lt;code&gt;loopx doctor&lt;/code&gt;; connect manually or call LoopX from your runner.&lt;/td&gt; 
   &lt;td&gt;Your shell, scheduler, or runner&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The exact, copy-ready setup messages and host recovery paths live in &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/getting-started.md&quot;&gt;Getting Started&lt;/a&gt;. Host integrations can inspect the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/reference/protocols/codex-app-host-command-registry-v0.md&quot;&gt;Codex App host command registry contract&lt;/a&gt;, the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/runtimes/codex-cli/codex-cli-packaged-install.md&quot;&gt;Codex CLI packaged install path&lt;/a&gt;, or the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/loopx/claude_goal_mode/README.md&quot;&gt;Claude Code adapter&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;For custom runners, start with the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/minimal-custom-runtime-example.md&quot;&gt;minimal custom runtime example&lt;/a&gt; (&lt;code&gt;python3 examples/custom-runtime-minimal-cli-turn-smoke.py&lt;/code&gt;), then the full &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/custom-agent-runner-integration.md&quot;&gt;Embed LoopX in Your Agent Runner&lt;/a&gt; guide and the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integrations/worker-bridge-install-contract.md&quot;&gt;worker bridge install contract&lt;/a&gt;. The core tick is deliberately small:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;loopx quota should-run      # should this registered agent act now?
loopx todo claim            # who owns this slice?
loopx todo update           # what changed?
loopx refresh-state         # what should the next turn see?
loopx quota spend-slot      # account for a completed, validated slice
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;First-Run Feedback&lt;/h3&gt; 
&lt;p&gt;If LoopX works for you, a one-minute public issue helps us learn what a real first run looks like. It is optional, contains no telemetry, and should not include logs, paths, credentials, internal project names, or goal contents:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/huangruiteng/loopx/issues/new?template=first_run.yml&quot;&gt;First-run feedback&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/huangruiteng/loopx/issues/new?template=usage_story.yml&quot;&gt;Usage story for longer runs&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;code&gt;loopx first-run-report&lt;/code&gt; prints the same prefilled link locally without sending anything.&lt;/p&gt; 
&lt;p&gt;A successful connection has:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;loopx doctor&lt;/code&gt; passing;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.loopx/registry.json&lt;/code&gt; and a projected active goal state;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;loopx status&lt;/code&gt; showing the current objective, concrete user gate, and next agent todo;&lt;/li&gt; 
 &lt;li&gt;a visible loop driver or an exact activation instruction;&lt;/li&gt; 
 &lt;li&gt;local runtime state ignored rather than committed.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Clone-based install is only for contributors who want the live canary wrapper:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/huangruiteng/loopx ~/loopx
~/loopx/scripts/install-local.sh
loopx doctor
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a id=&quot;capability-surface&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Capabilities&lt;/h2&gt; 
&lt;p&gt;LoopX folds its control-plane mechanics into five questions:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Question&lt;/th&gt; 
   &lt;th&gt;What LoopX keeps visible&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;What is the objective?&lt;/td&gt; 
   &lt;td&gt;The active goal, explicit scope, and current authority.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;What happens next?&lt;/td&gt; 
   &lt;td&gt;Ordered user and agent todos, ownership, claims, and leases.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;What needs human judgment?&lt;/td&gt; 
   &lt;td&gt;Concrete user gates instead of a vague &quot;waiting for owner.&quot;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;What evidence changed?&lt;/td&gt; 
   &lt;td&gt;Compact run history, validation, blockers, and accepted writeback.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;May the loop continue?&lt;/td&gt; 
   &lt;td&gt;Quota, capabilities, safe fallback, scheduler hints, and stop conditions.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Control-Plane Surface&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Surface&lt;/th&gt; 
   &lt;th&gt;What it does&lt;/th&gt; 
   &lt;th&gt;Start with&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Goal state and status&lt;/td&gt; 
   &lt;td&gt;Tracks active state, todos, claims, gates, evidence, run history, and first-screen attention.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx status&lt;/code&gt;, &lt;code&gt;loopx diagnose&lt;/code&gt;, &lt;code&gt;loopx review-packet&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Quota and interaction contract&lt;/td&gt; 
   &lt;td&gt;Decides whether a turn should deliver, ask, wait, self-repair, or stay quiet.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx quota should-run&lt;/code&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/quota-allocation.md&quot;&gt;quota allocation&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Agent runtime bridges&lt;/td&gt; 
   &lt;td&gt;Keeps Codex App, Codex CLI, Claude Code, and generic workers aligned with the same guard.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx heartbeat-prompt&lt;/code&gt;, &lt;code&gt;loopx codex-cli-bootstrap-message&lt;/code&gt;, &lt;code&gt;loopx worker-bridge&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Operator surfaces&lt;/td&gt; 
   &lt;td&gt;Renders compact status without making the browser the state authority.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx serve-status&lt;/code&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/apps/presentation/dashboard/README.md&quot;&gt;dashboard&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;External projections&lt;/td&gt; 
   &lt;td&gt;Projects todos and gates into collaboration surfaces while LoopX remains authoritative.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx lark-kanban&lt;/code&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integrations/lark-kanban-control-plane-adapter.md&quot;&gt;Lark Kanban adapter&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Domain capabilities&lt;/td&gt; 
   &lt;td&gt;Packages repeatable work lanes such as issue fixing, content operations, value connector planning, ML experiment advice, benchmark evidence, and Explore.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx issue-fix&lt;/code&gt;, &lt;code&gt;loopx content-ops&lt;/code&gt;, &lt;code&gt;loopx value-connectors&lt;/code&gt;, &lt;code&gt;loopx ml-experiment&lt;/code&gt;, &lt;code&gt;loopx benchmark&lt;/code&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/capabilities/explore/README.md&quot;&gt;Explore&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Experimental context learning&lt;/td&gt; 
   &lt;td&gt;Lets named registered agents trial provider-neutral Reward Memory through ignored, default-off project configuration. OpenViking is one provider option, not a global dependency.&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;loopx reward-memory experiment-status&lt;/code&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/reference/protocols/reward-memory-architecture-v0.md&quot;&gt;Reward Memory architecture&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Governance patterns&lt;/td&gt; 
   &lt;td&gt;Captures reusable routing, gate, evidence, projection, and planning shapes.&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/concepts/interaction-pattern-catalog.md&quot;&gt;interaction patterns&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/state-interaction-model.md&quot;&gt;state model&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The shipped primitives include lifetime goals, concrete user gates, audited safe fallbacks, peer todo ownership, quota and steering, compact run history, evidence-backed handoff, a read-first management surface, project-level value signals, and public/private boundary checks.&lt;/p&gt; 
&lt;h3&gt;Runtime Responsibilities&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Role&lt;/th&gt; 
   &lt;th&gt;Responsibility&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Plans, analyzes, uses tools, and performs one bounded action through a host/runtime.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Provider&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Calls external systems and returns observations, effect results, and readback.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Capability&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Defines the caller outcome, normalizes provider output, validates it, and proposes a typed transition.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Kernel&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Owns durable todos, gates, monitors, accepted writeback, quota, recovery, and scheduling.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The execution path is &lt;code&gt;Agent -&amp;gt; Capability -&amp;gt; Provider&lt;/code&gt;; the control path returns &lt;code&gt;Provider readback -&amp;gt; Capability transition -&amp;gt; Kernel&lt;/code&gt;. An extension is how an optional provider is packaged and managed, not another control-plane owner. See &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/architecture.md&quot;&gt;Architecture&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/reference/extensions.md&quot;&gt;Extensions and Capabilities&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Advanced Paths&lt;/h2&gt; 
&lt;p&gt;The first useful loop does not require every optional surface. Add these only when the work needs them.&lt;/p&gt; 
&lt;p&gt;Inspect the current goal&#39;s read-only capability catalog before enabling an advanced path:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;loopx configure-goal --goal-id &amp;lt;goal-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Without &lt;code&gt;--execute&lt;/code&gt;, this reports current/default state, fit, boundaries, and copyable commands without changing project state.&lt;/p&gt; 
&lt;h3&gt;Presets and Auto Research&lt;/h3&gt; 
&lt;p&gt;Safe presets cover daily triage, changelog drafts, and PR watching. The one-command research path coordinates proposer, executor, and evaluator/promoter roles while keeping quota and evidence visible. See the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/foundations/beginner-loop-presets.md&quot;&gt;beginner preset guide&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/auto-research-command-path.md&quot;&gt;Auto Research command path&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;loopx preset list
loopx preset show daily-triage
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Preset inspection is read-only. For a connected recurring goal, &lt;code&gt;loopx ready-score --goal-id &amp;lt;goal-id&amp;gt; --agent-id &amp;lt;agent-id&amp;gt;&lt;/code&gt; reports whether the loop is ready to run repeatedly.&lt;/p&gt; 
&lt;h3&gt;Governed Turns&lt;/h3&gt; 
&lt;p&gt;LoopX can generate one pure, bounded turn decision from a validated receipt, fresh quota state, and a provider-neutral budget. The current Codex CLI quickstart and activation contract are documented in &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/runtimes/codex-cli/loopx-turn-codex-cli-quickstart.md&quot;&gt;LoopX Turn for Codex CLI&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Explore Graph and Harness&lt;/h3&gt; 
&lt;p&gt;Explore is supported, optional, and default-off. It works best when a task has a measurable offline evaluation, baseline, treatment, and guardrails; it is not a substitute for production approval. Start with the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/capabilities/explore/README.md&quot;&gt;Explore capability&lt;/a&gt; and its &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/capabilities/explore/README.md#presentation-sink-lark-mapping&quot;&gt;Lark presentation mapping&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Review Agent Work&lt;/h3&gt; 
&lt;p&gt;Use &lt;code&gt;loopx review-packet&lt;/code&gt; for a compact owner-facing view of decisions, evidence, validation, and unresolved gates. The &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/surfaces/intelligent-management-surface.md&quot;&gt;intelligent management surface&lt;/a&gt; describes the operator model; the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/foundations/project-level-reward-model.md&quot;&gt;project-level reward model&lt;/a&gt; describes conservative value signals across output quantity, quality, token cost, and user attention cost.&lt;/p&gt; 
&lt;p&gt;For one concrete peer workflow, see the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md&quot;&gt;cross-runtime implementation review demo&lt;/a&gt;: Claude implements and Codex reviews while LoopX keeps ownership, evidence, quota, and handoff explicit.&lt;/p&gt; 
&lt;h3&gt;App and Projection Paths&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Local read-first UI: &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/apps/presentation/dashboard/README.md&quot;&gt;dashboard guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Public product overview: &lt;a href=&quot;https://huangruiteng.github.io/loopx/&quot;&gt;public homepage&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Documentation portal: &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/&quot;&gt;hosted docs&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Feishu/Lark projection: &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integrations/lark-kanban-control-plane-adapter.md&quot;&gt;Lark Kanban adapter&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Generic host integration: &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integration.md&quot;&gt;integration guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Custom multi-agent runner: &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/minimal-custom-runtime-example.md&quot;&gt;minimal custom runtime example&lt;/a&gt;, then &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/custom-agent-runner-integration.md&quot;&gt;custom runner integration&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Optional projections make state easier to inspect; they do not become the source of truth.&lt;/p&gt; 
&lt;h3&gt;Operating and Recovery&lt;/h3&gt; 
&lt;p&gt;Start daily inspection with:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;loopx status
loopx history --goal-id your-project-goal
loopx quota should-run --goal-id your-project-goal
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Automatic turns must check quota first and append spend only after validated writeback. Quiet skips, preflight failures, and dry-run previews do not spend. When a user gate blocks one lane, a separately audited safe fallback may continue, but it must not bypass the gate.&lt;/p&gt; 
&lt;p&gt;Peer agents use &lt;code&gt;loopx todo claim&lt;/code&gt; before delivery and &lt;code&gt;loopx todo update&lt;/code&gt; after validation so ownership and evidence remain visible.&lt;/p&gt; 
&lt;p&gt;Scheduler cadence follows &lt;code&gt;quota should-run.scheduler_hint&lt;/code&gt;; installed Codex App automations acknowledge the current hint through the returned &lt;code&gt;ack_hint.cli_args&lt;/code&gt;. Collision recovery, monitor semantics, self-repair, and the exact operator commands are maintained in &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/getting-started.md&quot;&gt;Getting Started&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/quota-allocation.md&quot;&gt;Quota Allocation&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/operations/long-task-cadence-policy.md&quot;&gt;Long-Task Cadence Policy&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Before publishing public docs or examples:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;loopx check \
  --scan-path README.md \
  --scan-path docs/ \
  --scan-path examples/
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Advanced Documentation&lt;/h2&gt; 
&lt;p&gt;Start with the path that matches your current task. Use the hosted &lt;a href=&quot;https://huangruiteng.github.io/loopx/docs/&quot;&gt;documentation portal&lt;/a&gt; for the published docs site; the &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/README.md&quot;&gt;documentation index&lt;/a&gt; remains the complete source map. This list stays selective; each category index owns its deeper documents and versioned protocols.&lt;/p&gt; 
&lt;h3&gt;Use and Operate&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/getting-started.md&quot;&gt;Getting Started&lt;/a&gt;: install, connect, diagnose, daily workflow, heartbeats, dashboard, development, and commands.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg&quot;&gt;User Manual&lt;/a&gt;: public onboarding, concepts, FAQ, and selected cases.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/operations/README.md&quot;&gt;Operations&lt;/a&gt;: goal continuation, todo, cadence, attention, and authority workflows.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/quota-allocation.md&quot;&gt;Quota Allocation&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/heartbeat-automation-prompt.md&quot;&gt;Heartbeat Automation Prompt&lt;/a&gt;: scheduler eligibility, spend, and scheduled continuation.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/apps/presentation/dashboard/README.md&quot;&gt;Dashboard&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/status-data-contract.md&quot;&gt;Status Data Contract&lt;/a&gt;: operator-facing state and projection contracts.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/release-readiness.md&quot;&gt;Release Readiness&lt;/a&gt;: install/update paths, compatibility gates, release notes, and safe-to-depend-on surfaces.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Understand the Control Plane&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/architecture.md&quot;&gt;Architecture&lt;/a&gt;: lifetime-goal invariant and kernel.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/state-interaction-model.md&quot;&gt;State Interaction Model&lt;/a&gt;: actors, stores, interaction contract, and writeback.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/concepts/README.md&quot;&gt;Concepts&lt;/a&gt;: reusable routing, gate, evidence, projection, and planning patterns.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/foundations/README.md&quot;&gt;Product Foundations&lt;/a&gt;: Loop Engineering principles, project-level reward, and reward-style replanning.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/product/vision.md&quot;&gt;Product Vision&lt;/a&gt;: the broader Loop Agent direction.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Integrate and Extend&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integration.md&quot;&gt;Integration Guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/minimal-custom-runtime-example.md&quot;&gt;Minimal Custom Runtime Example&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/guides/custom-agent-runner-integration.md&quot;&gt;Custom Agent Runner Integration&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/integrations/README.md&quot;&gt;Integrations&lt;/a&gt;: runtime, host, collaboration, and external-system adapters, including worker bridge and Lark.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/reference/extensions.md&quot;&gt;Extensions and Capabilities&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Build and Review LoopX&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/development/README.md&quot;&gt;Developer Guide&lt;/a&gt;: contributor workflows, benchmark development, documentation layout, and quality gates.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/reference/README.md&quot;&gt;Reference and Protocols&lt;/a&gt;: stable contracts and versioned implementation protocols, including host command and reward memory architecture.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/development/control-plane-course/README.md&quot;&gt;Control-Plane Developer Course&lt;/a&gt;: nine Chinese, code-led lectures.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/development/testing-and-quality.md&quot;&gt;Testing and Quality&lt;/a&gt;: validation layers and risk-based checks.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/public-private-boundary.md&quot;&gt;Public/Private Boundary&lt;/a&gt;: safe fixtures, examples, evidence, and publication.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Inspect Outcomes&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/showcases/README.md&quot;&gt;Showcase Catalog&lt;/a&gt;: public-safe cases and evidence labels.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/research/README.md&quot;&gt;Research and Evidence&lt;/a&gt;: benchmark investigations and source-backed findings.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/update-notes/README.md&quot;&gt;Update Notes&lt;/a&gt;: public-safe progress notes.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Project and Community&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/GOVERNANCE.md&quot;&gt;Project Governance&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/CONTRIBUTING.md&quot;&gt;Contributing&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/CONTRIBUTOR_TASKS.md&quot;&gt;Contributor Tasks&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/AUTHORS.md&quot;&gt;Authors and Contributors&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/project/history.md&quot;&gt;Project History&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/TRADEMARKS.md&quot;&gt;Name and Marks&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Partner Projects&lt;/h2&gt; 
&lt;p&gt;LoopX welcomes collaboration with other open-source projects to build the long-running agent ecosystem. Our confirmed partners include:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/volcengine/OpenViking&quot;&gt;OpenViking&lt;/a&gt; - Self-evolving context database for AI agents&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/NoKV-Lab/NoKV&quot;&gt;NoKV&lt;/a&gt; - AI native distributed file system&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a id=&quot;community--feedback&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Community and Feedback&lt;/h2&gt; 
&lt;p&gt;LoopX is still early. The most useful feedback comes from real long-running agent projects: where the control plane helped, where it felt heavy, and which gates or handoffs disappeared from view.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Use &lt;a href=&quot;https://github.com/huangruiteng/loopx/issues&quot;&gt;GitHub Issues&lt;/a&gt; for reproducible bugs, install problems, and feature requests.&lt;/li&gt; 
 &lt;li&gt;Open PRs for docs fixes, showcase writeups, and small public-safe examples.&lt;/li&gt; 
 &lt;li&gt;Join the &lt;a href=&quot;https://discord.gg/XmGgQyCFZd&quot;&gt;Discord community&lt;/a&gt;, or use Lark or WeChat below.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/SUPPORT.md&quot;&gt;Support&lt;/a&gt; for channel routing and service boundaries, and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/COMMUNICATIONS.md&quot;&gt;Communications&lt;/a&gt; for official publication sources.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/loopx-lark-developer-group.png&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/loopx-lark-developer-group.png&quot; alt=&quot;LoopX Lark developer group QR code&quot; width=&quot;280&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/loopx-wechat-contact.png&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/assets/loopx-wechat-contact.png&quot; alt=&quot;LoopX WeChat contact QR code&quot; width=&quot;220&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;&lt;strong&gt;Lark:&lt;/strong&gt; scan to join directly&lt;br /&gt;&lt;strong&gt;WeChat: &lt;code&gt;huangrt00&lt;/code&gt;&lt;/strong&gt; · mention LoopX in the friend request&lt;/sub&gt; &lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;External contributors should start with &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/CONTRIBUTOR_TASKS.md&quot;&gt;Contributor Tasks&lt;/a&gt; for public, claimable work and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/CONTRIBUTING.md&quot;&gt;Contributing&lt;/a&gt; for setup, validation, and boundary rules. Project roles and public history are recorded in &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/GOVERNANCE.md&quot;&gt;Governance&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/AUTHORS.md&quot;&gt;Authors and Contributors&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/docs/project/history.md&quot;&gt;Project History&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;LoopX keeps local active state separate from the public repository. Do not commit &lt;code&gt;.loopx/&lt;/code&gt;, &lt;code&gt;.codex/goals/&lt;/code&gt;, live &lt;code&gt;ACTIVE_GOAL_STATE.md&lt;/code&gt;, raw benchmark traces, credentials, private logs, or operator artifacts.&lt;/p&gt; 
&lt;h2&gt;Current Status&lt;/h2&gt; 
&lt;p&gt;The v0.4.x line is an early but usable local control plane for long-running agent work. It is not a full agent platform, an agent runtime, or an autonomous production controller.&lt;/p&gt; 
&lt;p&gt;Today LoopX ships a durable state kernel for goals, typed todos and decision scopes, peer claims and leases, evidence and writeback, quota-aware scheduling, and cross-turn continuation. Guided start, recurring heartbeat, isolated Codex CLI turns, evidence-backed Issue-Fix admission, optional Explore and auto research paths, public validation canaries, and a read-first multi-project dashboard build on that shared control state.&lt;/p&gt; 
&lt;p&gt;Support levels remain explicit. The state and CLI contracts are the stable center; several host integrations and advanced paths are optional, default-off, or experimental. LoopX does not grant credentials, approve destructive or production actions, publish on a user&#39;s behalf without authorization, or turn an unverified run into evidence of success.&lt;/p&gt; 
&lt;p&gt;The next milestones are simpler installation and host packaging, broader typed runtime adapters, stronger terminal acceptance across repeated public loops, independent adoption and outcome evidence, and a more polished management surface.&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/huangruiteng/loopx/stargazers&quot;&gt;&lt;img src=&quot;https://huangruiteng.github.io/loopx/site-assets/star-history.svg?sanitize=true&quot; alt=&quot;LoopX GitHub star history from verified snapshots&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;sub&gt;Generated every six hours from GitHub&#39;s official stargazer timestamps using a repository-authorized workflow. A snapshot is published only when the fetched rows match GitHub&#39;s current star count; GitHub&#39;s image cache may delay refreshes.&lt;/sub&gt; &lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;MIT. See &lt;a href=&quot;https://raw.githubusercontent.com/huangruiteng/loopx/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>firecrawl/pdf-inspector</title>
      <link>https://github.com/firecrawl/pdf-inspector</link>
      <description>&lt;p&gt;Fast Rust library for PDF inspection, classification, and text extraction. Intelligently detects scanned vs text-based PDFs to enable smart routing decisions.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;pdf-inspector&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://crates.io/crates/pdf-inspector&quot;&gt;&lt;img src=&quot;https://img.shields.io/crates/v/pdf-inspector.svg?sanitize=true&quot; alt=&quot;Crates.io&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.npmjs.com/package/@firecrawl/pdf-inspector&quot;&gt;&lt;img src=&quot;https://img.shields.io/npm/v/@firecrawl/pdf-inspector.svg?sanitize=true&quot; alt=&quot;npm&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pypi.org/project/pdf-inspector/&quot;&gt;&lt;img src=&quot;https://img.shields.io/pypi/v/pdf-inspector.svg?sanitize=true&quot; alt=&quot;PyPI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-MIT-blue.svg?sanitize=true&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Fast Rust library for PDF classification and text extraction. Detects whether a PDF is text-based or scanned, extracts text with position awareness, and converts to clean Markdown — all without OCR. Includes bindings for &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/docs/python.md&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/napi/README.md&quot;&gt;Node.js&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/wasm/README.md&quot;&gt;browser WebAssembly&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Built by &lt;a href=&quot;https://firecrawl.dev&quot;&gt;Firecrawl&lt;/a&gt; to handle text-based PDFs locally in under 200ms, skipping expensive OCR services for the ~54% of PDFs that don&#39;t need them.&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Smart classification&lt;/strong&gt; — Detect TextBased, Scanned, ImageBased, or Mixed PDFs in ~10-50ms by sampling content streams. Returns a confidence score (0.0-1.0) and per-page OCR routing.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Text extraction&lt;/strong&gt; — Position-aware extraction with font info, X/Y coordinates, and automatic multi-column reading order.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Markdown conversion&lt;/strong&gt; — Headings (H1-H4 via font size ratios), bullet/numbered/letter lists, code blocks (monospace font detection), tables (rectangle-based and heuristic), bold/italic formatting, URL linking, and page breaks.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Table detection&lt;/strong&gt; — Dual-mode: rectangle-based detection from PDF drawing ops, plus heuristic detection from text alignment. Handles financial tables, footnotes, and continuation tables across pages.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;CID font support&lt;/strong&gt; — ToUnicode CMap decoding for Type0/Identity-H fonts, UTF-16BE, UTF-8, and Latin-1 encodings.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-column layout&lt;/strong&gt; — Automatic detection of newspaper-style columns, sequential reading order, and RTL text support.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Encoding issue detection&lt;/strong&gt; — Automatically flags broken font encodings so callers can fall back to OCR.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Single document load&lt;/strong&gt; — The document is parsed once and shared between detection and extraction, avoiding redundant I/O.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Browser WebAssembly&lt;/strong&gt; — Run the same Rust parser locally in browsers and Web Workers, with embedded CMaps and no server round trip.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Lightweight&lt;/strong&gt; — Pure Rust, no ML models, no external services. Single dependency on &lt;code&gt;lopdf&lt;/code&gt; for PDF parsing.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Benchmark&lt;/h2&gt; 
&lt;p&gt;Evaluated on the &lt;a href=&quot;https://github.com/opendataloader-project/opendataloader-bench&quot;&gt;opendataloader-bench&lt;/a&gt; corpus (200 PDFs). Only local engines without model-based PDF parsing are shown; OCR was disabled. Scores are 0-1, higher is better.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Engine&lt;/th&gt; 
   &lt;th&gt;Overall&lt;/th&gt; 
   &lt;th&gt;Reading Order (NID)&lt;/th&gt; 
   &lt;th&gt;Tables (TEDS)&lt;/th&gt; 
   &lt;th&gt;Headings (MHS)&lt;/th&gt; 
   &lt;th&gt;Speed (200 docs)&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;pdf-inspector&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;0.875&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;0.915&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;0.814&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.788&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;0.470s&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;liteparse&lt;/td&gt; 
   &lt;td&gt;0.873&lt;/td&gt; 
   &lt;td&gt;0.913&lt;/td&gt; 
   &lt;td&gt;0.693&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;0.811&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;0.750s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;opendataloader&lt;/td&gt; 
   &lt;td&gt;0.831&lt;/td&gt; 
   &lt;td&gt;0.902&lt;/td&gt; 
   &lt;td&gt;0.489&lt;/td&gt; 
   &lt;td&gt;0.739&lt;/td&gt; 
   &lt;td&gt;2.569s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;pymupdf4llm&lt;/td&gt; 
   &lt;td&gt;0.735&lt;/td&gt; 
   &lt;td&gt;0.886&lt;/td&gt; 
   &lt;td&gt;0.401&lt;/td&gt; 
   &lt;td&gt;0.424&lt;/td&gt; 
   &lt;td&gt;17.117s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;markitdown&lt;/td&gt; 
   &lt;td&gt;0.589&lt;/td&gt; 
   &lt;td&gt;0.844&lt;/td&gt; 
   &lt;td&gt;0.273&lt;/td&gt; 
   &lt;td&gt;0.000&lt;/td&gt; 
   &lt;td&gt;16.165s&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Results were refreshed on July 31, 2026, on an Apple M4 Pro. Engine versions were pdf-inspector 0.2.6, LiteParse 2.10.1, OpenDataLoader 2.2.1, PyMuPDF4LLM 0.2.0, and MarkItDown 0.1.5. Speed is the median of five alternating or rotating complete corpus runs after an excluded warm-up run, with each parser processing documents sequentially in a single process.&lt;/p&gt; 
&lt;p&gt;The complete parser configuration, per-document predictions, evaluator output, and generated charts are available in the &lt;a href=&quot;https://github.com/firecrawl/opendataloader-bench/tree/abi/pdf-parser-benchmark-results&quot;&gt;reproducible results branch&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Native-text PDFs where speed, reading order, and table structure matter. In this comparison, pdf-inspector delivered the higher overall, reading-order, and table scores, along with the fastest complete run. That makes it a strong local default for reports, research papers, financial documents, invoices, and legal PDFs that need clean, structured Markdown without adding OCR latency or infrastructure.&lt;/p&gt; 
&lt;p&gt;Use the &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/docs/benchmarking.md&quot;&gt;paired benchmark harness&lt;/a&gt; to compare two local builds against the exact same corpus and evaluator revision.&lt;/p&gt; 
&lt;h2&gt;Quick start&lt;/h2&gt; 
&lt;h3&gt;Python&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install maturin
maturin develop --release
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import pdf_inspector

result = pdf_inspector.process_pdf(&quot;document.pdf&quot;)
print(result.pdf_type)   # &quot;text_based&quot;, &quot;scanned&quot;, &quot;image_based&quot;, &quot;mixed&quot;
print(result.markdown)   # Markdown string or None
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Full API reference: &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/docs/python.md&quot;&gt;docs/python.md&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Node.js&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install @firecrawl/pdf-inspector
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;import { readFileSync } from &#39;fs&#39;;
import { processPdf, classifyPdf } from &#39;@firecrawl/pdf-inspector&#39;;

const result = processPdf(readFileSync(&#39;document.pdf&#39;));
console.log(result.pdfType);   // &quot;TextBased&quot;, &quot;Scanned&quot;, &quot;ImageBased&quot;, &quot;Mixed&quot;
console.log(result.markdown);  // Markdown string or null
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Full API reference: &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/napi/README.md&quot;&gt;napi/README.md&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Browser WebAssembly&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install @firecrawl/pdf-inspector-wasm
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;import init, { processPdf } from &#39;@firecrawl/pdf-inspector-wasm&#39;;

await init();
const response = await fetch(&#39;/document.pdf&#39;);
const pdf = new Uint8Array(await response.arrayBuffer());
const result = processPdf(pdf);

console.log(result.pdfType);
console.log(result.markdown);
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Full API reference: &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/wasm/README.md&quot;&gt;wasm/README.md&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Rust&lt;/h3&gt; 
&lt;p&gt;Install from &lt;a href=&quot;https://crates.io/crates/pdf-inspector&quot;&gt;crates.io&lt;/a&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cargo add pdf-inspector
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Or add it manually:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[dependencies]
pdf-inspector = &quot;1&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-rust&quot;&gt;use pdf_inspector::process_pdf;

let result = process_pdf(&quot;document.pdf&quot;)?;
println!(&quot;Type: {:?}&quot;, result.pdf_type);
if let Some(markdown) = &amp;amp;result.markdown {
    println!(&quot;{}&quot;, markdown);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Full API reference: &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/docs/rust-api.md&quot;&gt;docs/rust-api.md&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;CLI&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Install the CLI tools
cargo install pdf-inspector

# Convert PDF to Markdown
pdf2md document.pdf

# JSON output (for piping)
pdf2md document.pdf --json

# Positioned TextItem JSON, including is_underline metadata
pdf2md document.pdf --items-json

# Raw markdown only (no headers)
pdf2md document.pdf --raw

# Token-efficient output (collapses long dot leaders and similar source padding)
pdf2md document.pdf --compact

# Insert page break markers (&amp;lt;!-- Page N --&amp;gt;)
pdf2md document.pdf --pages

# Process only specific pages
pdf2md document.pdf --select-pages 1,3,5-10

# Detection only (no extraction)
detect-pdf document.pdf
detect-pdf document.pdf --json

# Detection + layout analysis (tables, columns)
detect-pdf document.pdf --analyze --json
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;From a source checkout, use &lt;code&gt;cargo run --bin pdf2md -- document.pdf&lt;/code&gt; or &lt;code&gt;cargo run --bin detect-pdf -- document.pdf&lt;/code&gt; instead.&lt;/p&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;PDF bytes
  │
  ├─► detector         → PdfType (TextBased / Scanned / ImageBased / Mixed)
  │
  └─► extractor
        ├─ fonts        → font widths, encodings
        ├─ content_stream → walk PDF operators → TextItems + PdfRects
        ├─ xobjects     → Form XObject text, image placeholders
        ├─ links        → hyperlinks, AcroForm fields
        └─ layout       → column detection → line grouping → reading order
              │
              ├─► tables
              │     ├─ detect_rects      → rectangle-based tables (union-find)
              │     ├─ detect_heuristic  → alignment-based tables
              │     ├─ grid              → column/row assignment → cells
              │     └─ format            → cells → Markdown table
              │
              └─► markdown
                    ├─ analysis     → font stats, heading tiers
                    ├─ preprocess   → merge headings, drop caps
                    ├─ convert      → line loop + table/image insertion
                    ├─ classify     → captions, lists, code
                    └─ postprocess  → cleanup → final Markdown
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The document is loaded &lt;strong&gt;once&lt;/strong&gt; via &lt;code&gt;load_document_from_path&lt;/code&gt; / &lt;code&gt;load_document_from_mem&lt;/code&gt; and shared between the detection and extraction stages, so there&#39;s no redundant parsing.&lt;/p&gt; 
&lt;h3&gt;Project structure&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;src/
  lib.rs                — Public API, PdfOptions builder, convenience functions
  python.rs             — PyO3 Python bindings
  types.rs              — Shared types: TextItem, TextLine, PdfRect, ItemType
  text_utils.rs         — Character/text helpers (CJK, RTL, ligatures, bold/italic)
  process_mode.rs       — ProcessMode enum (DetectOnly, Analyze, Full)
  detector.rs           — Fast PDF type detection without full document load
  glyph_names.rs        — Adobe Glyph List → Unicode mapping
  tounicode.rs          — ToUnicode CMap parsing for CID-encoded text
  extractor/            — Text extraction pipeline
  tables/               — Table detection and formatting
  markdown/             — Markdown conversion and structure detection
  bin/                  — CLI tools (pdf2md, detect_pdf)
napi/                   — Node.js/Bun bindings (napi-rs)
wasm/                   — Browser bindings (wasm-bindgen)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;How classification works&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;Parse the xref table and page tree (no full object load)&lt;/li&gt; 
 &lt;li&gt;Select pages based on &lt;code&gt;ScanStrategy&lt;/code&gt; (default: all pages with early exit)&lt;/li&gt; 
 &lt;li&gt;Look for &lt;code&gt;Tj&lt;/code&gt;/&lt;code&gt;TJ&lt;/code&gt; (text operators) and &lt;code&gt;Do&lt;/code&gt; (image operators) in content streams&lt;/li&gt; 
 &lt;li&gt;Classify based on text operator presence across sampled pages&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;This detects 300+ page PDFs in milliseconds. The result includes &lt;code&gt;pages_needing_ocr&lt;/code&gt; — a list of specific page numbers that lack text, enabling per-page OCR routing instead of all-or-nothing.&lt;/p&gt; 
&lt;h3&gt;Scan strategies&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Strategy&lt;/th&gt; 
   &lt;th&gt;Behavior&lt;/th&gt; 
   &lt;th&gt;Best for&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;EarlyExit&lt;/code&gt; (default)&lt;/td&gt; 
   &lt;td&gt;Scan all pages, stop on first non-text page&lt;/td&gt; 
   &lt;td&gt;Pipelines routing TextBased PDFs to fast extraction&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Full&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Scan all pages, no early exit&lt;/td&gt; 
   &lt;td&gt;Accurate Mixed vs Scanned classification&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Sample(n)&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Sample &lt;code&gt;n&lt;/code&gt; evenly distributed pages (first, last, middle)&lt;/td&gt; 
   &lt;td&gt;Very large PDFs where speed matters more than precision&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Pages(vec)&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Only scan specific 1-indexed page numbers&lt;/td&gt; 
   &lt;td&gt;When the caller knows which pages to check&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Markdown output&lt;/h2&gt; 
&lt;p&gt;The converter handles:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Element&lt;/th&gt; 
   &lt;th&gt;How it&#39;s detected&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Headings (H1-H4)&lt;/td&gt; 
   &lt;td&gt;Font size tiers relative to body text, with 0.5pt clustering&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Bold/italic&lt;/td&gt; 
   &lt;td&gt;Font name patterns (Bold, Italic, Oblique)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Bullet lists&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;•&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;○&lt;/code&gt;, &lt;code&gt;●&lt;/code&gt;, &lt;code&gt;◦&lt;/code&gt; prefixes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Numbered lists&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;1.&lt;/code&gt;, &lt;code&gt;1)&lt;/code&gt;, &lt;code&gt;(1)&lt;/code&gt; patterns&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Letter lists&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;a.&lt;/code&gt;, &lt;code&gt;a)&lt;/code&gt;, &lt;code&gt;(a)&lt;/code&gt; patterns&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Code blocks&lt;/td&gt; 
   &lt;td&gt;Monospace fonts (Courier, Consolas, Monaco, Menlo, Fira Code, JetBrains Mono) and keyword detection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Tables&lt;/td&gt; 
   &lt;td&gt;Rectangle-based detection from PDF drawing ops + heuristic detection from text alignment&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Financial tables&lt;/td&gt; 
   &lt;td&gt;Token splitting for consolidated numeric values&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Captions&lt;/td&gt; 
   &lt;td&gt;&quot;Figure&quot;, &quot;Table&quot;, &quot;Source:&quot; prefix detection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Sub/superscript&lt;/td&gt; 
   &lt;td&gt;Font size and Y-offset relative to baseline&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;URLs&lt;/td&gt; 
   &lt;td&gt;Converted to Markdown links&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Hyphenation&lt;/td&gt; 
   &lt;td&gt;Rejoins words broken across lines&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Page numbers&lt;/td&gt; 
   &lt;td&gt;Filtered from output&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Drop caps&lt;/td&gt; 
   &lt;td&gt;Large initial letters merged with following text&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Dot leaders&lt;/td&gt; 
   &lt;td&gt;TOC-style dots collapsed to &quot; ... &quot;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Use case: smart PDF routing&lt;/h2&gt; 
&lt;p&gt;pdf-inspector was built for pipelines that process PDFs at scale. Instead of sending every PDF through OCR:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PDF arrives
  → pdf-inspector classifies it (~20ms)
  → TextBased + high confidence?
      YES → extract locally (~150ms), done
      NO  → send to OCR service (2-10s)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This saves cost and latency for the majority of PDFs that are already text-based (reports, papers, invoices, legal docs).&lt;/p&gt; 
&lt;h2&gt;Debugging&lt;/h2&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/docs/debugging.md&quot;&gt;docs/debugging.md&lt;/a&gt; for &lt;code&gt;RUST_LOG&lt;/code&gt; environment variable usage.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/firecrawl/pdf-inspector/main/LICENSE&quot;&gt;MIT&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>TencentCloud/TencentDB-Agent-Memory</title>
      <link>https://github.com/TencentCloud/TencentDB-Agent-Memory</link>
      <description>&lt;p&gt;TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/logo.png&quot; alt=&quot;TencentDB Agent Memory&quot; width=&quot;880&quot; /&gt; 
 &lt;h3&gt;Agents remember. Humans innovate.&lt;/h3&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/29310?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-29310&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/29310&quot; alt=&quot;TencentCloud%2FTencentDB-Agent-Memory | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/package/@tencentdb-agent-memory/memory-tencentdb&quot;&gt;&lt;img src=&quot;https://img.shields.io/npm/v/@tencentdb-agent-memory/memory-tencentdb?color=blue&quot; alt=&quot;npm&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-MIT-green.svg?sanitize=true&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://nodejs.org/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/node-%3E=22.16-brightgreen&quot; alt=&quot;Node&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/openclaw/openclaw&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/OpenClaw-%3E=2026.3.13-orange&quot; alt=&quot;OpenClaw&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://hermes-agent.nousresearch.com/docs/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Hermes-Gateway-7B61FF&quot; alt=&quot;Hermes&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/dJQM6mKMF&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#installation&quot;&gt;Installation&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#what-is-tencentdb-agent-memory&quot;&gt;What is it?&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#one-play-style-build-a-growing-agent-team-for-a-one-person-company&quot;&gt;Team Play&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#technical-implementation&quot;&gt;Technical Implementation&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#benchmark&quot;&gt;Benchmark&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/#roadmap&quot;&gt;Roadmap&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/README.md&quot;&gt;&lt;strong&gt;English&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/README_CN.md&quot;&gt;简体中文&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Latest:&lt;/strong&gt; Team Memory Beta is evolving quickly — install it and start exploring in minutes.&lt;/p&gt; 
&lt;/blockquote&gt;  
&lt;video src=&quot;https://github.com/user-attachments/assets/efb1a808-1f86-4cfe-802c-f7453f7ca938&quot; width=&quot;100%&quot; controls autoplay loop muted playsinline&gt;&lt;/video&gt;  
&lt;h1&gt;Installation&lt;/h1&gt; 
&lt;p&gt;Start all three services in one go (&lt;code&gt;memory-core&lt;/code&gt; + &lt;code&gt;memory-hub&lt;/code&gt; + &lt;code&gt;proxy&lt;/code&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/Tencent/TencentDB-Agent-Memory.git
cd TencentDB-Agent-Memory/deploy/global-images
cp .env.example .env
$EDITOR .env       # Fill in two sets of LLM parameters (memory group + proxy group)
./start-all.sh     # Launch everything with one command; when finished, it prints a one-liner you can paste directly into Claude
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Open the panel: &lt;a href=&quot;http://localhost:8125&quot;&gt;http://localhost:8125&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Complete installation documentation (standalone Memory Hub deployment, Proxy + Claude Code / CodeBuddy usage, stop and cleanup, port reference, etc.) is available in &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/INSTALL.md&quot;&gt;&lt;strong&gt;INSTALL.md&lt;/strong&gt;&lt;/a&gt; (中文: &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/INSTALL_CN.md&quot;&gt;INSTALL_CN.md&lt;/a&gt;).&lt;/p&gt; 
&lt;h3&gt;Migrating data from an older version&lt;/h3&gt; 
&lt;p&gt;If you&#39;re already on an older release (v1.x / v0.x) and want to bring your existing data over to v2.0.0+, we provide a migration tool:&lt;/p&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/MemoryCore/scripts/migrate-v2-to-v3/README.md&quot;&gt;&lt;strong&gt;Data Migration Tool (v2 → v3)&lt;/strong&gt;&lt;/a&gt; for full usage and flags. New installations can skip this.&lt;/p&gt; 
&lt;h1&gt;What is TencentDB Agent Memory?&lt;/h1&gt; 
&lt;p&gt;We started from a practical question: &lt;strong&gt;How do you reduce repetitive work when using Agents?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;If project context has already been explained, it shouldn&#39;t need to be repeated in a new session. If documents have already been read, every Agent shouldn&#39;t have to start again from page one. A workflow that already works shouldn&#39;t have to be rediscovered next time.&lt;/p&gt; 
&lt;p&gt;Memory here means more than just &quot;remembering conversations.&quot; &lt;strong&gt;Any information that helps the next Agent avoid reinventing the wheel should be saved, organized, and reused.&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Existing information → Reusable memory assets → Fewer turns → Less rework → More stable results and higher efficiency
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Let experience accumulate, flow, and pass on to the next Agent&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Memory Hub&lt;/strong&gt; for Agent teams closes the loop across the entire experience lifecycle: work produces assets, assets circulate through the team, and new members can load the team&#39;s save file on day one.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic asset extraction&lt;/strong&gt;: Extract Chat Memory and Skills from conversations and tasks; convert documents and code into Wiki and CodeGraph; then manage, review, and route them consistently.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Portable &amp;amp; multi-Agent compatible&lt;/strong&gt;: Memory assets are decoupled from Agent frameworks — they can move across frameworks and be shared and maintained by multiple Agents and team members.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cold-start friendly&lt;/strong&gt;: Import existing documents, codebases, and Agent conversation sessions. New Agent teams can start from existing experience instead of learning from scratch.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;🧠 A brain that remembers people and context&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Chat Memory&lt;/strong&gt; retains preferences, facts, decisions, and interaction history.&lt;/li&gt; 
 &lt;li&gt;Each Agent automatically gets its own memory when created — no need to re-introduce yourself next time.&lt;/li&gt; 
 &lt;li&gt;L0 Conversation → L1 Atom → L2 Scenario → L3 Persona — raw conversations are distilled layer by layer.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;img width=&quot;&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/chat_memory.cn.png&quot; alt=&quot;image.png&quot; /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Don&#39;t refactor the old auth module — mobile is still using it.&quot; — Context this costly shouldn&#39;t depend on humans repeating it every time.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;⚡ A Skill library that accumulates expertise&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;After completing complex work, Agents can extract and manage reusable Skills from conversations and tool calls, and import them into the context of a designated Agent when needed.&lt;/li&gt; 
 &lt;li&gt;A Skill isn&#39;t just a prompt snippet; it has versions, resource files, trigger boundaries, execution steps, and validation rules.&lt;/li&gt; 
 &lt;li&gt;Personal Skills are private by default; after review, they can be shared with the team and assigned to other Agents.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;img width=&quot;&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/skill.cn.png&quot; alt=&quot;image.png&quot; /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Troubleshooting, code review, release checklists — learn it once, and the whole team can use it.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;📖 A knowledge map that reads both docs and code&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Wiki&lt;/strong&gt; turns product docs, design specs, and ops runbooks into structured pages with a link graph. (Inspired by Karpathy&#39;s LLM knowledge base.)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/wiki.cn.png&quot; alt=&quot;image.png&quot; /&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;CodeGraph&lt;/strong&gt; indexes code symbols, files, call relationships, and impact paths. &lt;img width=&quot;&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/codegraph.cn.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Agents can search, read, inspect callers/callees, and perform impact analysis before modifying code.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Wiki keeps Agents from reading every file list before getting to work. CodeGraph doesn&#39;t just tell them &quot;the code is here&quot; — it tells them &quot;changing this might affect those.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;🛡️ A team memory panel controlled by humans&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Create teams and Agents in Memory Hub; review, share, and equip memory assets.&lt;/li&gt; 
 &lt;li&gt;Manage ownership, versions, status, visibility, usage counts, and Agent bindings in one place.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;private&lt;/code&gt; belongs strictly to the Owner; &lt;code&gt;team&lt;/code&gt; is visible to all team members; &lt;code&gt;restricted&lt;/code&gt; grants precise access via User / Role / Agent ACLs.&lt;/li&gt; 
 &lt;li&gt;Two role layers: &lt;strong&gt;global System Admin&lt;/strong&gt; manages users and teams (creating teams, adding members) and can also use Wiki, CodeGraph, Skill, and other asset management features; &lt;strong&gt;Team-level roles&lt;/strong&gt; include Admin (team manager) and Member (regular member), responsible for asset collaboration and access control within a team. Asset ownership is tracked via Owner — the Owner automatically has management permissions for their assets.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;img width=&quot;&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/asset.cn.png&quot; alt=&quot;image.png&quot; /&gt; 
&lt;h2&gt;Cold Start: Load the Save File, Then Get to Work&lt;/h2&gt; 
&lt;p&gt;Most Agents&#39; first task is re-learning your project. TencentDB Agent Memory turns the learning cost you&#39;ve already paid into a save file:&lt;/p&gt; 
&lt;img alt=&quot;Cold Start: import codebase, docs, and history into Memory Hub&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/flowchart3.png&quot; /&gt; 
&lt;p&gt;Specifically, these existing assets can be imported directly and processed automatically in the panel:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Codebases&lt;/strong&gt;: Import existing repositories — &lt;strong&gt;CodeGraph&lt;/strong&gt; automatically indexes symbols, files, call relationships, and impact paths.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Documents &amp;amp; files&lt;/strong&gt;: Import relevant docs and files — &lt;strong&gt;Wiki&lt;/strong&gt; automatically generates structured pages with a link graph.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Conversation sessions&lt;/strong&gt;: Import past Agent conversation sessions — &lt;strong&gt;Skills and Chat Memory&lt;/strong&gt; are automatically extracted as reusable assets.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Stop retraining every Agent. Give it the save file.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;One Play Style: Build a Growing Agent Team for a One-Person Company&lt;/h2&gt; 
&lt;p&gt;Open Memory Hub and create a team:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Tiny but Serious Inc.
├── 👤 You · Set goals / Make decisions
├── 🔭 Scout · Research / Find opportunities
├── 🛠 Builder · Write code / Build products
├── 🧪 Reviewer · Test / Find issues
└── 🧠 Agent Memory · Preserve the team&#39;s experience
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You&#39;re not opening four disconnected chat windows — you&#39;re assembling a squad with different roles that can inherit the team&#39;s accumulated experience.&lt;/p&gt; 
&lt;h3&gt;Recruit first, then equip&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;🔭 Scout
   ├── User interview Chat Memory
   ├── Market research Wiki
   └── Competitive analysis Skill

🛠 Builder
   ├── Product Wiki
   ├── Project CodeGraph
   └── Feature Delivery Skill

🧪 Reviewer
   ├── Historical incident Chat Memory
   ├── Project CodeGraph
   └── Release Checklist Skill
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Different roles, different loadouts. Less noise — give each Agent the memory assets it actually needs to get work done.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;The company can be tiny. Experience can compound forever.&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;Memory Assets, Not a Chat Log Warehouse&lt;/h2&gt; 
&lt;p&gt;RAG answers &quot;what can be found?&quot; Team Memory also answers &quot;who can use it, which version is valid, and which Agent should receive it.&quot;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Chat History&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Standard RAG&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;TencentDB Agent Memory&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Cross-session user understanding&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;△&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;△&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅ Chat Memory&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Distilled executable experience&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅ Skill&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Document structure &amp;amp; relationships&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;△ Chunk retrieval&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅ Wiki + Link Graph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Code call graphs &amp;amp; impact scope&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;△ Text match&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅ CodeGraph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Ownership / Version / Status&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Team sharing &amp;amp; Agent loadout&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Private / Team / ACL&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;—&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;△&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;✅&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Memory Hub Is Not a Display Board — It&#39;s a Control Panel&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Play Style&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;What you do in the Hub&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Team Up&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Create teams, add people and Agents, define sharing boundaries&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Asset Library&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Browse, search, review, and manage Chat Memory, Skills, Wiki, and CodeGraph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Agent Loadout&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Bind different memory assets to different Agents; adjust priority and usage mode&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Knowledge Workshop&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Build Wiki and CodeGraph; monitor processing status and asset metadata&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Access Control&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Switch between private, team, and ACL-based access; revoke sharing when needed&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;When you open an asset, what matters is not just &quot;what it says,&quot; but also &quot;where it came from, which version it is, who it&#39;s assigned to, and whether it&#39;s been used recently.&quot;&lt;/p&gt; 
&lt;h2&gt;Every Loop Gains Experience&lt;/h2&gt; 
&lt;img alt=&quot;Every Loop Gains Experience: continuous accumulation, making every use smarter&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/flowchart4.png&quot; /&gt; 
&lt;p&gt;Memory doesn&#39;t run the Agent loop; it ensures the next iteration inherits the previous one&#39;s results: valuable interactions stay in Chat Memory, proven workflows are distilled into Skills, and document/code changes are updated through Wiki ingest and CodeGraph sync.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Without Memory, loops may just repeat faster. With inherited memory, each iteration has the chance to be better than the last.&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;One Agent Team: Shared Experience, Not Shared Privacy&lt;/h2&gt; 
&lt;p&gt;New Chat Memory and Skills are private by default. Sharing is an explicit action, not a default leak.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Visibility&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Semantics&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;private&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Only the Owner can read — not even team admins&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Team members can read; the Owner / Admin can manage&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;restricted&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Precise access via User / Role / Agent ACL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;agent&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;For targeted equipping of Agents within the same team&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;You can assign the &quot;Release Skill&quot; to the Release Agent, the &quot;Architecture Wiki&quot; to all development Agents, and CodeGraph to Coder and Reviewer.&lt;/p&gt; 
&lt;h2&gt;Technical Implementation&lt;/h2&gt; 
&lt;p&gt;TencentDB Agent Memory doesn&#39;t aim to &quot;store everything.&quot; It solves three problems: &lt;strong&gt;what&#39;s worth keeping, who can use it, and how to retrieve less while retrieving the right things next time.&lt;/strong&gt;&lt;/p&gt; 
&lt;img alt=&quot;Technical overview: layering (L0–L3), Memory Assets, Memory Hub, identity-based assembly for Agents&quot; src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/flowchart5.png&quot; /&gt; 
&lt;h3&gt;1. Memory isn&#39;t flat records — it grows in layers&lt;/h3&gt; 
&lt;p&gt;Conversations are first saved as L0, then refined by an async pipeline into multiple levels of granularity:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Layer&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;What it stores&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Primary use&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;L0 Conversation&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Raw conversations with full context&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Verify exact wording, timestamps, and sources&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;L1 Atom&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Facts, preferences, constraints, and events extracted from conversations&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Precise recall of actionable information&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;L2 Scenario&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Knowledge blocks organized around projects or scenarios&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Quickly restore a working context&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;L3 Core / Persona&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Long-term profiles, stable patterns, and high-level cognition&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Let Agents rapidly enter a user&#39;s and team&#39;s context&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Both generation and retrieval are layered: normally, L2/L3 provide a quick context bootstrap; when specific facts are needed, BM25 + vector retrieval + RRF fall back to L1/L0. Results are further capped by item count, character budget, and timeout limits to prevent memory from overwhelming the context window.&lt;/p&gt; 
&lt;h3&gt;2. Memory isn&#39;t a global prompt — it&#39;s the Agent&#39;s loadout&lt;/h3&gt; 
&lt;p&gt;Chat Memory, Skills, Wiki, and CodeGraph are all registered uniformly as Memory Assets. Memory Hub uses &lt;strong&gt;Fixed Binding + ACL&lt;/strong&gt; to determine which assets a given Agent can use: first narrow the permission scope by Team, User, Agent, and visibility, then retrieve based on the current query.&lt;/p&gt; 
&lt;p&gt;This lets teams share experience without exposing all their private information; switching Agents or frameworks only requires re-equipping, not retraining.&lt;/p&gt; 
&lt;h3&gt;3. Knowledge isn&#39;t injected wholesale — it&#39;s called on demand&lt;/h3&gt; 
&lt;p&gt;Documents are organized into searchable Wiki pages that support link-graph drill-down; codebases are indexed into CodeGraph assets containing files, symbols, and call relationships. Agents first discover capabilities via &lt;code&gt;/v3/tools/list&lt;/code&gt;, then use &lt;code&gt;/v3/tools/call&lt;/code&gt; to read relevant pages, source code, or impact paths.&lt;/p&gt; 
&lt;p&gt;This makes documents and code part of memory as well — but they remain available tools that only enter context when truly needed.&lt;/p&gt; 
&lt;h2&gt;Benchmark&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Benchmark&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Without TencentDB Agent Memory&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;With it enabled&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Relative improvement&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;PersonaMem&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;48%&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;76%&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;+59%&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;PersonaMem tests whether an Agent can correctly understand and apply user information after extended interactions.&lt;/p&gt; 
&lt;h2&gt;Notes&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Wiki and CodeGraph are built asynchronously; allow some processing time before they reach &lt;code&gt;ready&lt;/code&gt; status.&lt;/li&gt; 
 &lt;li&gt;CodeGraph currently prioritizes public HTTPS repositories; support for private repositories and SSH credentials is still being refined.&lt;/li&gt; 
 &lt;li&gt;The Hub supports manual asset binding; fully automated memory routing is still under iteration.&lt;/li&gt; 
 &lt;li&gt;TencentDB Agent Memory currently supports OpenClaw, Hermes, Claude Code, CodeBuddy, and SDK integration; broader cross-framework migration is on the roadmap.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Related Documentation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/INSTALL.md&quot;&gt;Full Installation Guide&lt;/a&gt; (Memory Core + Hub + Proxy one-click deployment)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/ROADMAP.md&quot;&gt;Roadmap&lt;/a&gt; (what we&#39;re building next; 中文: &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/ROADMAP_CN.md&quot;&gt;ROADMAP_CN.md&lt;/a&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/MemoryCore/scripts/migrate-v2-to-v3/README.md&quot;&gt;Data Migration Tool (v2 → v3)&lt;/a&gt; (if you&#39;re on an older release and want to migrate existing data)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/MemoryKnowledge/openapi.yaml&quot;&gt;Knowledge OpenAPI&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/CONTRIBUTING.md&quot;&gt;Contributing Guide&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Agent Memory doesn&#39;t have a settled standard yet. Bug reports, documentation, benchmarks, new framework adapters, and more creative Memory Hub use cases are all welcome.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Roadmap&lt;/h2&gt; 
&lt;p&gt;Current release is &lt;strong&gt;v2.0.0&lt;/strong&gt;. Next up (&lt;strong&gt;v2.0.1&lt;/strong&gt;): zero-config cold start, faster Wiki generation, user/team custom prompts, Skill export, and Codex (IDE Plan mode) support.&lt;/p&gt; 
&lt;p&gt;👉 See the full plan in &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/ROADMAP.md&quot;&gt;&lt;strong&gt;ROADMAP.md&lt;/strong&gt;&lt;/a&gt; (中文: &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/ROADMAP_CN.md&quot;&gt;ROADMAP_CN.md&lt;/a&gt;).&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Acknowledgements&lt;/h2&gt; 
&lt;p&gt;TencentDB Agent Memory stands on the shoulders of the open-source community:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/colbymchenry/codegraph&quot;&gt;&lt;strong&gt;CodeGraph&lt;/strong&gt;&lt;/a&gt; — our CodeGraph asset module &lt;strong&gt;uses code from this project&lt;/strong&gt;. Its design of a pre-indexed code graph is the foundation of our implementation.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/nousresearch/hermes-agent&quot;&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/a&gt; (Nous Research) — our Skill asset management &lt;strong&gt;uses part of the Skill-related code from Hermes Agent and builds further optimizations base on it&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f&quot;&gt;&lt;strong&gt;&quot;LLM Wiki&quot;&lt;/strong&gt; by Andrej Karpathy&lt;/a&gt; — the idea of treating documentation as an LLM-maintained, incrementally growing knowledge artifact directly informed how our Wiki layer is built and kept up to date.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;We are grateful to the authors and contributors of these projects.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Community &amp;amp; Contributing&lt;/h2&gt; 
&lt;p&gt;We welcome contributions of all kinds — bug reports, feature suggestions, documentation fixes, benchmark reproductions, ecosystem integrations, or pull requests. Agent memory is far from settled, and we hope to build it together with the community.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;🐞 &lt;strong&gt;Found a bug or have a question?&lt;/strong&gt; Open an issue in &lt;a href=&quot;https://github.com/Tencent/TencentDB-Agent-Memory/issues&quot;&gt;GitHub Issues&lt;/a&gt; — we respond within 24 hours.&lt;/li&gt; 
 &lt;li&gt;💡 &lt;strong&gt;Have an idea to share?&lt;/strong&gt; Start a thread in &lt;a href=&quot;https://github.com/Tencent/TencentDB-Agent-Memory/discussions&quot;&gt;GitHub Discussions&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;🛠️ &lt;strong&gt;Want to contribute code?&lt;/strong&gt; Please read &lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; first.&lt;/li&gt; 
 &lt;li&gt;💬 &lt;strong&gt;Want to chat with us?&lt;/strong&gt; Join our &lt;a href=&quot;https://discord.gg/dJQM6mKMF&quot;&gt;Discord community&lt;/a&gt; and talk to the core developers directly.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;p align=&quot;center&quot;&gt; Let the path the team has walked become the next Agent&#39;s starting line. &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;✨ Contributors&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;💡 Thanks to the following contributors building with us — you make TencentDB Agent Memory better.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://github.com/TencentCloud/TencentDB-Agent-Memory/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=TencentCloud/TencentDB-Agent-Memory&amp;amp;columns=12&amp;amp;anon=1&quot; /&gt; &lt;/a&gt; 
 &lt;p&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href=&quot;https://github.com/TencentCloud/TencentDB-Agent-Memory/issues&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/Contributions_Welcome-006eff?style=for-the-badge&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;Contributions Welcome&quot; /&gt; &lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;table width=&quot;100%&quot;&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td width=&quot;68%&quot;&gt; &lt;b&gt;If TencentDB Agent Memory has been helpful to you, please consider starring the project.&lt;/b&gt;&lt;br /&gt; If you have any suggestions, feel free to open an issue for discussion. &lt;/td&gt; 
   &lt;td width=&quot;32%&quot; align=&quot;right&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/assets/images/star-helper.png&quot; alt=&quot;Star TencentDB Agent Memory&quot; width=&quot;260&quot; /&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.star-history.com/#Tencent/TencentDB-Agent-Memory&amp;amp;Date&quot;&gt; &lt;img src=&quot;https://github.com/user-attachments/assets/16753a90-8bc9-471b-819e-311947ed94f7&quot; alt=&quot;Star History Chart&quot; width=&quot;600&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/TencentCloud/TencentDB-Agent-Memory/feat/server_team/LICENSE&quot;&gt;MIT&lt;/a&gt; © TencentDB Agent Memory Team&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>semantica-agi/semantica</title>
      <link>https://github.com/semantica-agi/semantica</link>
      <description>&lt;p&gt;Graph-Native Infrastructure for Context and Accountable AI Systems&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/Semantica%20Logo.png&quot; alt=&quot;Semantica&quot; width=&quot;420&quot; /&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/18986?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-18986&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/18986&quot; alt=&quot;semantica-agi%2Fsemantica | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;h3&gt;Graph-Native Infrastructure for Context and Accountable AI Systems&lt;/h3&gt; 
 &lt;h4&gt;&lt;em&gt;The Open Source Palantir for AI Agents&lt;/em&gt;&lt;/h4&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;Ingest your enterprise data, extract what matters, build a Context Graph and knowledge graph (KG), and run graph analytics and causal reasoning over all of it, with full decision provenance baked in. Explainable, traceable, and trustworthy by design.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Decision Intelligence &amp;nbsp;·&amp;nbsp; Context Management &amp;nbsp;·&amp;nbsp; Deterministic Reasoning &amp;nbsp;·&amp;nbsp; Ontology Management &amp;nbsp;·&amp;nbsp; Knowledge Modeling &amp;nbsp;·&amp;nbsp; End-to-End Traceability&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Open Source &amp;nbsp;·&amp;nbsp; Self-Hostable &amp;nbsp;·&amp;nbsp; Auditable &amp;nbsp;·&amp;nbsp; Governed &amp;nbsp;·&amp;nbsp; Zero Vendor Lock-In&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Polyglot Graph Storage &amp;nbsp;·&amp;nbsp; RDF &amp;amp; LPG Support &amp;nbsp;·&amp;nbsp; W3C Standards &amp;nbsp;·&amp;nbsp; Interoperable&lt;/strong&gt;&lt;/p&gt; 
 &lt;h4&gt;Built for High-Stakes, Regulated Domains&lt;/h4&gt; 
 &lt;p&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/semantica-agi/semantica?style=flat-square&amp;amp;color=FFD700&amp;amp;logo=github&amp;amp;logoColor=white&amp;amp;label=Stars&quot; alt=&quot;GitHub Stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/semantica-agi/semantica/network/members&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/forks/semantica-agi/semantica?style=flat-square&amp;amp;color=6E40C9&amp;amp;logo=github&amp;amp;logoColor=white&amp;amp;label=Forks&quot; alt=&quot;GitHub Forks&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/semantica-agi/semantica/graphs/contributors&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/contributors/semantica-agi/semantica?style=flat-square&amp;amp;color=2EA043&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;Contributors&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pypi.org/project/semantica/&quot;&gt;&lt;img src=&quot;https://img.shields.io/pypi/v/semantica.svg?style=flat-square&amp;amp;color=0066CC&amp;amp;logo=pypi&amp;amp;logoColor=white&quot; alt=&quot;PyPI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pepy.tech/project/semantica&quot;&gt;&lt;img src=&quot;https://static.pepy.tech/badge/semantica?style=flat-square&quot; alt=&quot;Total Downloads&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.python.org/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/python-3.8+-3776AB?style=flat-square&amp;amp;logo=python&amp;amp;logoColor=white&quot; alt=&quot;Python 3.8+&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://opensource.org/licenses/MIT&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/semantica-agi/semantica/actions&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/semantica-agi/semantica/ci.yml?style=flat-square&amp;amp;label=CI&quot; alt=&quot;CI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://deepwiki.com/semantica-agi/semantica&quot;&gt;&lt;img src=&quot;https://deepwiki.com/badge.svg?sanitize=true&quot; alt=&quot;Ask DeepWiki&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://getsemantica.ai/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Website-getsemantica.ai-000000?style=flat-square&amp;amp;logo=googlechrome&amp;amp;logoColor=white&quot; alt=&quot;Website&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.getsemantica.ai/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Docs-docs.getsemantica.ai-0099FF?style=flat-square&amp;amp;logo=readthedocs&amp;amp;logoColor=white&quot; alt=&quot;Docs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/sV34vps5hH&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=flat-square&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://x.com/BuildSemantica&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Follow-%40BuildSemantica-000000?style=flat-square&amp;amp;logo=x&amp;amp;logoColor=white&quot; alt=&quot;Twitter/X&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=QfnNZg4-dZA&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/YouTube-Watch%20Demos-FF0000?style=flat-square&amp;amp;logo=youtube&amp;amp;logoColor=white&quot; alt=&quot;YouTube&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/CHANGELOG.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Changelog-View-6E40C9?style=flat-square&amp;amp;logo=keepachangelog&amp;amp;logoColor=white&quot; alt=&quot;Changelog&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install semantica
&lt;/code&gt;&lt;/pre&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://www.youtube.com/watch?v=QfnNZg4-dZA&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/docs/assets/img/semantica-knowledge-explorer-demo.gif&quot; alt=&quot;Semantica Knowledge Explorer: live graph, decisions, entity resolution, ontology hub&quot; width=&quot;900&quot; /&gt; &lt;/a&gt; 
 &lt;p&gt;&lt;em&gt;Knowledge Explorer · Context Graphs · Reasoning Engine · Decision Intelligence · Ontology Hub&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=QfnNZg4-dZA&quot;&gt;▶ Watch the full platform walkthrough&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;p&gt;Most AI agents act without a trail. They store embeddings, not meaning: context that can&#39;t be explained, decisions that can&#39;t be audited. In lending, that gap is a compliance exposure, not an inconvenience: an underwriting agent&#39;s approval has to survive a regulator&#39;s &quot;why&quot; months later.&lt;/p&gt; 
&lt;p&gt;Semantica sits underneath your LLM, vector store, and agent framework as a deterministic infrastructure layer: no LLM required for graph construction, reasoning, or provenance.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Who it&#39;s for:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;AI/ML platform teams&lt;/strong&gt; shipping agents that make consequential decisions and need structured, queryable context built from fragmented raw data, not just a vector index&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Data platform teams on Databricks or Snowflake&lt;/strong&gt; who need to turn tables already sitting in Unity Catalog or a Snowflake warehouse into a governed, lineage-tracked knowledge graph, without exporting that data to a third-party SaaS first&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Compliance, risk, and audit teams&lt;/strong&gt; who need a straight answer to &quot;why did the AI do that?&quot; in a format a regulator will actually accept&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Regulated enterprises&lt;/strong&gt; (finance, healthcare, legal, government, defense) that can&#39;t ship a black box, and can&#39;t send their data to someone else&#39;s SaaS to get one&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Platform and infra engineers&lt;/strong&gt; who want the KG, reasoning, and provenance stack self-hosted and swappable, not locked to one vendor&#39;s backend&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Data and knowledge engineers&lt;/strong&gt; building a KG from messy, multi-source data: entities and relationships get extracted, conflicting or contradictory facts are flagged instead of silently overwritten, and duplicates are merged before they turn into noise&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#quick-start&quot;&gt;Quick Start&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#architecture&quot;&gt;Architecture&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#what-semantica-gives-you&quot;&gt;What You Get&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#why-semantica&quot;&gt;Why Semantica&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#decision-intelligence&quot;&gt;Decision Intelligence&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#context-graphs&quot;&gt;Context Graphs&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#recipe-audit-trail-for-a-regulated-decision&quot;&gt;Recipe: Audit Trail&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#module-reference&quot;&gt;Module Reference&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#integrations&quot;&gt;Integrations&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#cli&quot;&gt;CLI&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#performance&quot;&gt;Performance&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#installation&quot;&gt;Install&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;What Semantica Gives You&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Context Graphs:&lt;/strong&gt; A structured, queryable graph of everything your agent knows, decides, and reasons about&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Decision Intelligence:&lt;/strong&gt; Every decision is a first-class object: traceable, searchable by precedent, and causally linked&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;AI Governance &amp;amp; Ontology:&lt;/strong&gt; SHACL constraints, conflict detection, compliance rules, OWL generation, and SKOS vocabulary management with a visual editor&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Full Auditability:&lt;/strong&gt; W3C PROV-O provenance on every fact, with audit trails exportable to JSON, CSV, or RDF&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Deterministic Reasoning:&lt;/strong&gt; Forward chaining, Rete network, Datalog, and SPARQL with fully explainable paths, not black boxes&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Knowledge Pipeline:&lt;/strong&gt; Multi-source ingestion, entity-aware chunking, NER/relation/event extraction, and knowledge graph construction, with semantic deduplication and provenance-preserving merges throughout&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Enterprise Data Platforms:&lt;/strong&gt; Native connectors for Databricks (Unity Catalog + Delta Lake, PAT/OAuth M2M auth, catalog/schema/table/lineage introspection) and Snowflake (warehouse/database/schema, key-pair and OAuth auth), so tables already living in your lakehouse or warehouse become graph nodes with provenance, not another export/import hop&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Graph Analytics:&lt;/strong&gt; Centrality, community detection, link prediction, and shortest-path queries over the graph you just built&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Polyglot Graph Storage:&lt;/strong&gt; Native RDF (embedded Oxigraph, Blazegraph, Apache Jena, Eclipse RDF4J via SPARQL) and Labeled Property Graphs (Neo4j, FalkorDB, Apache AGE, AWS Neptune via Cypher), plus vector stores, all swappable without touching your code&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Visualization:&lt;/strong&gt; Explore any graph, ontology, or timeline in an interactive browser workbench&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Drop-in Integrations:&lt;/strong&gt; Native Agno support, a full-featured MCP server, a comprehensive CLI, a REST API, and plugins across major editors&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Why Semantica&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;Vector DB + RAG&lt;/th&gt; 
   &lt;th&gt;Plain LLM Memory&lt;/th&gt; 
   &lt;th&gt;&lt;strong&gt;Semantica&lt;/strong&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Recall method&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Embedding similarity&lt;/td&gt; 
   &lt;td&gt;Token window&lt;/td&gt; 
   &lt;td&gt;Graph traversal + semantic search&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Decision history&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Not stored&lt;/td&gt; 
   &lt;td&gt;Not stored&lt;/td&gt; 
   &lt;td&gt;First-class queryable objects&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Provenance&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;W3C PROV-O, source-linked&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Reasoning&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;Black box&lt;/td&gt; 
   &lt;td&gt;Forward chain, Rete, Datalog, SPARQL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Conflict detection&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Silent overwrite&lt;/td&gt; 
   &lt;td&gt;Silent overwrite&lt;/td&gt; 
   &lt;td&gt;Detected, flagged, resolved&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Time travel&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Point-in-time graph snapshots&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Compliance export&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;PROV-O, SHACL, OWL, RDF&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Policy enforcement&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;Built-in rule engine + SHACL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Entity resolution&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Blocking + semantic deduplication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Multi-agent context&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Separate per agent&lt;/td&gt; 
   &lt;td&gt;Separate per agent&lt;/td&gt; 
   &lt;td&gt;Single shared intelligence layer&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Semantica complements your existing stack rather than replacing it. Keep your LLM, vector store, and agent framework exactly as they are; Semantica adds the decision records, causal reasoning, provenance, ontology governance, conflict detection, and audit trails on top. The reasoning engines, KG construction, and provenance layer are fully deterministic; no LLM is required to use them.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install semantica
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# Every agent decision becomes a queryable, auditable knowledge node
decision_id = graph.record_decision(
    category=&quot;vendor_selection&quot;,
    scenario=&quot;Choose cloud provider for HIPAA workload&quot;,
    reasoning=&quot;AWS offers BAA, mature HIPAA tooling, and existing team expertise&quot;,
    outcome=&quot;selected_aws&quot;,
    confidence=0.93,
)

# Ask &quot;why did this happen?&quot; and get a real, structured answer
chain     = graph.trace_decision_chain(decision_id)       # full causal ancestry
similar   = graph.find_similar_decisions(&quot;cloud vendor&quot;, max_results=5)  # precedents
impact    = graph.analyze_decision_impact(decision_id)    # downstream influence map
compliant = graph.check_decision_rules({&quot;category&quot;: &quot;vendor_selection&quot;})  # policy gate
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Verify your install in 5 seconds:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;semantica doctor
# Python 3.11.9         pass
# semantica 0.6.5       pass
# faiss vector store    pass
# Config file           pass    ~/.semantica/config.yaml
&lt;/code&gt;&lt;/pre&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;If Semantica solves a real problem for you, a star helps others find it.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica&quot;&gt;⭐ Star on GitHub&lt;/a&gt;&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://discord.gg/sV34vps5hH&quot;&gt;Join Discord&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;p&gt;Semantica is a real end-to-end pipeline, not a single library with a marketing name. Every stage below is a shipping module, independently importable:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Sources → Ingest → Parse → Normalize → Split → Extract → Conflict Detection → Deduplication
   → Knowledge Graph → [ Ontology · Reasoning · Provenance · Decisions ] → Enriched KG
   → Vector Store + Polyglot Graph Store (RDF &amp;amp; LPG) → Export / Visualize / REST · MCP · CLI
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Ingest:&lt;/strong&gt; files, web, databases, enterprise data platforms (Databricks, Snowflake), cloud (Google Drive, Elasticsearch), streams (Kafka, Kinesis), Git, email, MCP&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Parse → Normalize → Split:&lt;/strong&gt; document parsing, text/entity/date normalization, GraphRAG-native entity-aware chunking&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extract → Conflict Detection → Deduplication:&lt;/strong&gt; NER, relations, events, triplets; conflicting facts flagged and resolved before they merge&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Knowledge Graph:&lt;/strong&gt; &lt;code&gt;GraphBuilder&lt;/code&gt; constructs the graph; bi-temporal facts and full graph analytics (centrality, communities, link prediction) run on top of it&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ontology · Reasoning · Provenance · Decisions:&lt;/strong&gt; the intelligence layer sitting on the KG, with SHACL/OWL governance, Rete/Datalog/SPARQL inference, W3C PROV-O lineage, and first-class decision records&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; polyglot by design, with RDF triple stores (embedded Oxigraph, Blazegraph, Apache Jena, Eclipse RDF4J), Labeled Property Graphs (Neo4j, FalkorDB, Apache AGE, AWS Neptune), and vector stores, all swappable without touching your code&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Outputs:&lt;/strong&gt; export (RDF, OWL, Parquet, Cypher, JSON-LD), interactive visualization, and access via REST API, MCP server, or CLI&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;→ &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/ARCHITECTURE.md&quot;&gt;Full Mermaid diagrams for the pipeline and the decision intelligence lifecycle&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Decision Intelligence&lt;/h2&gt; 
&lt;p&gt;Decision Intelligence turns every AI choice from an ephemeral inference into a permanent, auditable, queryable record. It answers &lt;em&gt;&quot;what did your AI decide, why, and what happened next?&quot;&lt;/em&gt;: the question regulators and enterprise risk teams ask with increasing urgency.&lt;/p&gt; 
&lt;p&gt;In Semantica, a decision is not a log line. It is a first-class graph node with a full lifecycle. In regulated domains, every AI decision must be traceable to a source and defensible to an auditor: &lt;code&gt;record_decision()&lt;/code&gt; creates a permanent, structured record exportable as W3C PROV-O, the format most compliance frameworks accept for regulator submission.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;record_decision()             → stored as a graph node with full structured context
add_causal_relationship()     → linked to upstream causes and downstream effects
find_similar_decisions()      → semantic precedent search across all past decisions
trace_decision_chain()        → full causal ancestry back to root causes
analyze_decision_impact()     → downstream influence map - everything this decision affected
check_decision_rules()        → policy compliance gate against configurable rule sets
export / audit trail          → W3C PROV-O, CSV, or JSON for regulator submission
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# Record decisions with full structured context
app_id = graph.record_decision(
    category=&quot;credit_application&quot;,
    scenario=&quot;Personal loan, $85k income, 31% DTI, 3yr employment&quot;,
    reasoning=&quot;Income meets threshold; employment stable; no adverse credit events&quot;,
    outcome=&quot;proceed_to_underwriting&quot;,
    confidence=0.88,
    metadata={&quot;applicant_id&quot;: &quot;A-7291&quot;},
)
uw_id = graph.record_decision(
    category=&quot;loan_underwriting&quot;,
    scenario=&quot;Underwriting review for A-7291&quot;,
    reasoning=&quot;DTI within policy; clean 36-month credit history&quot;,
    outcome=&quot;approved&quot;,
    confidence=0.94,
)
rate_id = graph.record_decision(
    category=&quot;interest_rate&quot;,
    scenario=&quot;Rate assignment for approved loan A-7291&quot;,
    outcome=&quot;rate_set_8.9pct&quot;,
    reasoning=&quot;Prime + 2.4% based on risk tier B2&quot;,
    confidence=0.99,
)

# Build the auditable causal chain - relationship_type must be one of
# CAUSED, INFLUENCED, or PRECEDENT_FOR
graph.add_causal_relationship(app_id, uw_id,   relationship_type=&quot;CAUSED&quot;)
graph.add_causal_relationship(uw_id,  rate_id, relationship_type=&quot;INFLUENCED&quot;)

# Query the intelligence
chain     = graph.trace_decision_chain(rate_id)
similar   = graph.find_similar_decisions(&quot;personal loan approval, 31% DTI&quot;, max_results=5)
impact    = graph.analyze_decision_impact(uw_id)
compliant = graph.check_decision_rules({&quot;category&quot;: &quot;loan_underwriting&quot;, &quot;confidence&quot;: 0.94})
insights  = graph.get_decision_insights()
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Context Graphs&lt;/h2&gt; 
&lt;p&gt;A Context Graph is the structured memory layer that traditional RAG is missing. Instead of flat embeddings that answer &lt;em&gt;&quot;what is similar?&quot;&lt;/em&gt;, a Context Graph answers &lt;em&gt;&quot;what is connected, why, and how?&quot;&lt;/em&gt; Every entity, relationship, decision, and fact is a first-class node, queryable by graph traversal. Entities link to source documents, decisions link to evidence and consequences, facts carry full provenance, and conflicts are detected, not silently overwritten.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.context import ContextGraph, AgentContext
from semantica.vector_store import VectorStore

graph = ContextGraph(advanced_analytics=True)

# Add nodes with typed properties
graph.add_node(&quot;acme_corp&quot;,    &quot;Organization&quot;, name=&quot;Acme Corp&quot;, industry=&quot;SaaS&quot;)
graph.add_node(&quot;alice_chen&quot;,   &quot;Person&quot;,       name=&quot;Alice Chen&quot;, role=&quot;CTO&quot;)
graph.add_node(&quot;contract_001&quot;, &quot;Contract&quot;,     value=2_400_000, currency=&quot;USD&quot;)

# Add typed, weighted edges (extra kwargs become edge metadata)
graph.add_edge(&quot;alice_chen&quot;, &quot;acme_corp&quot;,    edge_type=&quot;works_for&quot;,  since=&quot;2019-03-01&quot;)
graph.add_edge(&quot;acme_corp&quot;,  &quot;contract_001&quot;, edge_type=&quot;party_to&quot;,   signed=&quot;2024-01-15&quot;)

# BFS traversal - hop through the graph from any node
neighbors = graph.get_neighbors(&quot;acme_corp&quot;, hops=2)

# Point-in-time snapshot - the graph as it existed on any past date
snapshot  = graph.state_at(&quot;2024-01-01&quot;)

# AgentContext - high-level API for agent memory workflows
vs  = VectorStore(backend=&quot;faiss&quot;)
ctx = AgentContext(vector_store=vs, knowledge_graph=graph)
ctx.store(&quot;Alice approved the Acme renewal in Q1 2024&quot;, conversation_id=&quot;conv_001&quot;)
retrieved = ctx.retrieve(&quot;who approved the Acme contract?&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Why graph over embeddings:&lt;/strong&gt; traversal finds connections embeddings miss (a person 3 hops from a contract); every node carries provenance so you can always ask &lt;em&gt;&quot;where did this come from?&quot;&lt;/em&gt;; conflicts are flagged before they corrupt your knowledge base; point-in-time snapshots let you replay history without reprocessing.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Recipe: Audit Trail for a Regulated Decision&lt;/h2&gt; 
&lt;p&gt;The flagship pattern: record a causally-linked decision chain, attach provenance to every entity, and export a regulator-ready audit trail.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.context import ContextGraph
from semantica.provenance import ProvenanceManager
from semantica.export import RDFExporter

graph = ContextGraph(advanced_analytics=True)
prov  = ProvenanceManager(storage_path=&quot;./audit.db&quot;)

# Record the decision chain
d1 = graph.record_decision(
    category=&quot;drug_interaction_check&quot;, scenario=&quot;Patient P-4821: warfarin + amiodarone co-prescribed&quot;,
    reasoning=&quot;Amiodarone potentiates warfarin&#39;s anticoagulant effect&quot;, outcome=&quot;flag_for_review&quot;, confidence=0.91,
)
d2 = graph.record_decision(
    category=&quot;dosage_adjustment&quot;, scenario=&quot;INR monitoring plan for P-4821&quot;,
    reasoning=&quot;Reduce warfarin dose per interaction severity; recheck INR in 5 days&quot;, outcome=&quot;dose_reduced_30pct&quot;, confidence=0.87,
)
# relationship_type must be one of CAUSED, INFLUENCED, or PRECEDENT_FOR
graph.add_causal_relationship(d1, d2, relationship_type=&quot;CAUSED&quot;)

# Track provenance for every entity
prov.track_entity(&quot;patient_P4821&quot;, source=&quot;ehr/medication_orders_2024.json&quot;,
                  metadata={&quot;extractor&quot;: &quot;NamedEntityRecognizer&quot;})

# Export W3C PROV-O for regulator submission - RDFExporter expects
# {&quot;entities&quot;: [...], &quot;relationships&quot;: [...]}, so map ContextGraph.to_dict()&#39;s
# {&quot;nodes&quot;: [...], &quot;edges&quot;: [...]} shape onto it first
graph_dict = graph.to_dict()
kg = {
    &quot;entities&quot;: [{&quot;id&quot;: n[&quot;id&quot;], &quot;type&quot;: n[&quot;type&quot;], &quot;text&quot;: n[&quot;content&quot;]} for n in graph_dict[&quot;nodes&quot;]],
    &quot;relationships&quot;: [
        {&quot;source_id&quot;: e[&quot;source&quot;], &quot;target_id&quot;: e[&quot;target&quot;], &quot;type&quot;: e[&quot;type&quot;]}
        for e in graph_dict[&quot;edges&quot;]
    ],
}
RDFExporter().export(kg, &quot;audit_trail.ttl&quot;, format=&quot;turtle&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;More recipes (GraphRAG pipelines, an AML rules engine, ontology-to-KG in one pass) are in &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#more-recipes&quot;&gt;More Recipes&lt;/a&gt;&lt;/strong&gt; below.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Explore the Platform&lt;/h2&gt; 
&lt;p&gt;Every module below is independently importable, with working code samples verified against the current source tree; use one or all of them.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Module&lt;/th&gt; 
   &lt;th&gt;What it does&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticaingest-multi-source-ingestion&quot;&gt;&lt;code&gt;semantica.ingest&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Files, web, databases, APIs, streams, email, Git, Parquet, Databricks, Snowflake, MCP&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticasemantic_extract-ner-relations-events-triplets&quot;&gt;&lt;code&gt;semantica.semantic_extract&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;NER, relation extraction, event detection, triplet generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticakg-knowledge-graph-construction--analysis&quot;&gt;&lt;code&gt;semantica.kg&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Graph construction, centrality, communities, link prediction&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticareasoning-forward-chaining-rete-datalog-sparql&quot;&gt;&lt;code&gt;semantica.reasoning&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Forward chaining, Rete, Datalog, SPARQL, fully explainable&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticavector_store-hybrid--filtered-semantic-search&quot;&gt;&lt;code&gt;semantica.vector_store&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;FAISS, Qdrant, Weaviate, Milvus, Pinecone, PgVector, hybrid search&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticasplit-graphrag-native-document-chunking&quot;&gt;&lt;code&gt;semantica.split&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Entity-aware, relation-aware, ontology-aware chunking for GraphRAG&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticaprovenance-w3c-prov-o-lineage&quot;&gt;&lt;code&gt;semantica.provenance&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;W3C PROV-O lineage on every fact&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticaontology-owl-generation-shacl-validation&quot;&gt;&lt;code&gt;semantica.ontology&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;OWL generation, SHACL validation, SKOS vocabularies&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticaconflicts-conflict-detection--resolution&quot;&gt;&lt;code&gt;semantica.conflicts&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Detect and resolve conflicting facts across sources&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticadeduplication-entity-resolution-at-scale&quot;&gt;&lt;code&gt;semantica.deduplication&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Entity resolution at scale&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticanormalize-data-normalization--cleaning&quot;&gt;&lt;code&gt;semantica.normalize&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Text, entity, date, and number normalization; dataset cleaning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticapipeline-pipeline-dsl&quot;&gt;&lt;code&gt;semantica.pipeline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Declarative, parallel pipeline DSL for ingest → extract → build → export&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticaexport-rdf-owl-parquet-cypher-json-ld&quot;&gt;&lt;code&gt;semantica.export&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;RDF, OWL, Parquet, Cypher, JSON-LD&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticavisualization-interactive-graph-workbench&quot;&gt;&lt;code&gt;semantica.visualization&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Force-directed graphs, ontology hierarchies, temporal dashboards&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#temporal-intelligence-bi-temporal-graphs--time-travel&quot;&gt;Temporal Intelligence&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Bi-temporal facts, Allen interval algebra, time travel&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#multi-agent-shared-context-with-agno&quot;&gt;Multi-Agent (Agno)&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;One shared context graph across every agent on a team&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;↓ Expand &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#module-reference&quot;&gt;Module Reference&lt;/a&gt; below&lt;/strong&gt; for every module&#39;s working example, or jump to &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#more-recipes&quot;&gt;More Recipes&lt;/a&gt;, the full &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#integrations&quot;&gt;Integrations&lt;/a&gt; matrix, &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#mcp-server&quot;&gt;MCP tool list&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#rest-api&quot;&gt;REST endpoints&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Module Reference&lt;/h2&gt; 
&lt;p&gt;Expand any module below for its runnable example.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.ingest&lt;/code&gt;&lt;/b&gt;: Multi-Source Ingestion&lt;/summary&gt; 
 &lt;a id=&quot;semanticaingest-multi-source-ingestion&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Ingest from files, web, databases, APIs, streams, email, Git repos, Parquet, Databricks, Snowflake, or MCP servers, all through a unified interface.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.ingest import FileIngestor, WebIngestor, ParquetIngestor, DBIngestor

# Ingest an entire directory of contracts (PDF, DOCX, HTML, TXT)
docs = FileIngestor().ingest_directory(&quot;./contracts/&quot;, recursive=True)

# Ingest live web content with robots.txt compliance
pages = WebIngestor().ingest_url(&quot;https://example.com/reports/annual-2024.html&quot;)

# Ingest structured data from Parquet with Snappy compression
records = ParquetIngestor().ingest(&quot;./data/transactions.parquet&quot;)

# Ingest from a SQL database - specify which tables to pull
rows = DBIngestor().ingest_database(
    connection_string=&quot;postgresql://user:pass@localhost/mydb&quot;,
    include_tables=[&quot;customer_events&quot;],
    max_rows_per_table=50_000,
)
&lt;/code&gt;&lt;/pre&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Enterprise data platforms - pull tables straight out of your lakehouse
# or warehouse, with lineage, instead of exporting to CSV first
from semantica.ingest import DatabricksIngestor, SnowflakeIngestor

# pip install &quot;semantica[db-databricks]&quot;
databricks = DatabricksIngestor(
    host=&quot;https://adb-xxx.azuredatabricks.net&quot;,
    token=&quot;dapi-xxxxxxxx&quot;,              # or client_id/client_secret for OAuth M2M
    http_path=&quot;/sql/1.0/warehouses/xxxxxxxx&quot;,
    catalog=&quot;main&quot;,
)
customers    = databricks.ingest_table(&quot;customers&quot;, limit=10_000)
sales        = databricks.ingest_query(&quot;SELECT * FROM sales WHERE region = &#39;EMEA&#39;&quot;)
table_lineage = databricks.get_table_lineage(&quot;customers&quot;, catalog=&quot;main&quot;, schema=&quot;default&quot;)  # Unity Catalog lineage

# pip install semantica[db-snowflake]
snowflake = SnowflakeIngestor(
    account=&quot;myaccount&quot;,
    user=&quot;myuser&quot;,
    password=&quot;mypassword&quot;,              # or private_key=... for key-pair; use authenticator=&quot;oauth&quot;, token=... for OAuth
    warehouse=&quot;COMPUTE_WH&quot;,
    database=&quot;MYDB&quot;,
)
orders = snowflake.ingest_table(&quot;ORDERS&quot;, limit=10_000)
&lt;/code&gt;&lt;/pre&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;strong&gt;Security Note:&lt;/strong&gt; Never hardcode credentials (&lt;code&gt;token&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt;, &lt;code&gt;private_key&lt;/code&gt;) in production code; pass them via environment variables (e.g., &lt;code&gt;DATABRICKS_TOKEN&lt;/code&gt;, &lt;code&gt;SNOWFLAKE_PASSWORD&lt;/code&gt;) or a secrets manager.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Supported sources:&lt;/strong&gt; Local files (PDF, DOCX, PPTX, HTML, TXT, CSV, JSON, YAML, Excel, XML) · Web pages · RSS/Atom feeds · REST APIs · Databases (PostgreSQL, MySQL, SQLite, Oracle, SQL Server) · Parquet datasets · Databricks (Unity Catalog + Delta Lake) · Snowflake · Git repositories · Email (IMAP/POP3) · Message streams (Kafka, RabbitMQ, Kinesis, Pulsar) · MCP resources · Apache Arrow/Feather/IPC (&lt;code&gt;ArrowIngestor&lt;/code&gt;)&lt;/p&gt; 
 &lt;p&gt;DuckDB, Elasticsearch, Google Drive, HuggingFace, MongoDB, and Pandas ingestion also ship (&lt;code&gt;DuckDBIngestor&lt;/code&gt;, &lt;code&gt;ElasticIngestor&lt;/code&gt;, &lt;code&gt;GDriveIngestor&lt;/code&gt;, &lt;code&gt;HuggingFaceIngestor&lt;/code&gt;, &lt;code&gt;MongoIngestor&lt;/code&gt;, &lt;code&gt;PandasIngestor&lt;/code&gt;) but aren&#39;t re-exported from the top-level &lt;code&gt;semantica.ingest&lt;/code&gt; namespace yet — import them directly: &lt;code&gt;from semantica.ingest.duckdb_ingestor import DuckDBIngestor&lt;/code&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.semantic_extract&lt;/code&gt;&lt;/b&gt;: NER, Relations, Events, Triplets&lt;/summary&gt; 
 &lt;a id=&quot;semanticasemantic_extract-ner-relations-events-triplets&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Extract structured knowledge from raw text in one pass.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.semantic_extract import (
    NamedEntityRecognizer,
    RelationExtractor,
    EventDetector,
    TripletExtractor,
)

text = &quot;&quot;&quot;
Anthropic CEO Dario Amodei announced a $7.3B Series E funding round in partnership
with Google and Spark Capital, valuing the company at $61.5B as of Q4 2024.
&quot;&quot;&quot;

# Named entity recognition with confidence thresholding
ner = NamedEntityRecognizer(confidence_threshold=0.7)
entities = ner.extract_entities(text)
# → [Entity(name=&quot;Dario Amodei&quot;, type=&quot;PERSON&quot;), Entity(name=&quot;Anthropic&quot;, type=&quot;ORG&quot;),
#    Entity(name=&quot;Google&quot;, type=&quot;ORG&quot;), Entity(name=&quot;$7.3B&quot;, type=&quot;MONEY&quot;), ...]

# Relationship extraction - bidirectional support
rel_extractor = RelationExtractor(confidence_threshold=0.6, bidirectional=True)
relations = rel_extractor.extract_relations(text, entities=entities)
# → [Relation(subject=&quot;Dario Amodei&quot;, predicate=&quot;ceo_of&quot;, object=&quot;Anthropic&quot;),
#    Relation(subject=&quot;Anthropic&quot;, predicate=&quot;raised&quot;, object=&quot;$7.3B Series E&quot;), ...]

# Event detection with temporal processing
events = EventDetector(extract_participants=True, extract_time=True).detect_events(text)
# → [Event(type=&quot;FUNDING&quot;, participants=[&quot;Anthropic&quot;,&quot;Google&quot;,&quot;Spark Capital&quot;],
#          amount=&quot;$7.3B&quot;, date=&quot;Q4 2024&quot;)]

# RDF triplets with optional provenance metadata
triplets = TripletExtractor(include_temporal=True, include_provenance=True).extract_triplets(text)
# → [(&quot;Anthropic&quot;, &quot;valuation&quot;, &quot;$61.5B&quot;), (&quot;Dario Amodei&quot;, &quot;is_ceo_of&quot;, &quot;Anthropic&quot;), ...]
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;Batch processing across many documents uses &lt;code&gt;ner.process_batch([...])&lt;/code&gt;, not a per-call &lt;code&gt;extract_entities_batch&lt;/code&gt; on the facade class.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.kg&lt;/code&gt;&lt;/b&gt;: Knowledge Graph Construction &amp;amp; Analysis&lt;/summary&gt; 
 &lt;a id=&quot;semanticakg-knowledge-graph-construction--analysis&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Build a production knowledge graph from documents and run graph algorithms over it.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.ingest import FileIngestor
from semantica.kg import (
    GraphBuilder,
    GraphAnalyzer,
    CentralityCalculator,
    CommunityDetector,
    PathFinder,
    LinkPredictor,
    BiTemporalFact,
)
from datetime import datetime

# Build KG - merge duplicate entities, track temporal edges
sources = FileIngestor().ingest_directory(&quot;./contracts/&quot;, recursive=True)
kg = GraphBuilder(merge_entities=True, enable_temporal=True).build(sources)

# Graph analytics
analyzer    = GraphAnalyzer()
analysis    = analyzer.analyze_graph(kg)             # full graph metrics

centrality  = CentralityCalculator()
degree      = centrality.calculate_degree_centrality(kg)    # most-connected entities
betweenness = centrality.calculate_betweenness_centrality(kg)

communities = CommunityDetector().detect_communities(kg, method=&quot;louvain&quot;)  # natural clusters
path        = PathFinder().find_shortest_path(kg, &quot;alice_chen&quot;, &quot;contract_001&quot;)
predictions = LinkPredictor().predict_links(kg, top_k=10)   # relationship predictions

# Bi-temporal facts - track valid time vs. recorded time independently
fact = BiTemporalFact(
    valid_from=datetime(2024, 3, 1),
    valid_until=datetime(2025, 1, 1),
    recorded_at=datetime(2024, 3, 5),
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.reasoning&lt;/code&gt;&lt;/b&gt;: Forward Chaining, Rete, Datalog, SPARQL&lt;/summary&gt; 
 &lt;a id=&quot;semanticareasoning-forward-chaining-rete-datalog-sparql&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Run explainable rule-based inference, not a black box.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.reasoning import ReteEngine, Rule, Fact, RuleType

rete = ReteEngine()
rete.build_network([
    Rule(
        rule_id=&quot;aml_flag&quot;,
        name=&quot;Flag high-risk transactions&quot;,
        conditions=[
            {&quot;field&quot;: &quot;amount&quot;,  &quot;operator&quot;: &quot;&amp;gt;&quot;,  &quot;value&quot;: 10_000},
            {&quot;field&quot;: &quot;country&quot;, &quot;operator&quot;: &quot;in&quot;, &quot;value&quot;: [&quot;IR&quot;, &quot;KP&quot;, &quot;SY&quot;]},
        ],
        conclusion=&quot;flag_for_compliance_review&quot;,
        rule_type=RuleType.IMPLICATION,
    ),
    Rule(
        rule_id=&quot;velocity_check&quot;,
        name=&quot;Flag rapid sequential transfers&quot;,
        conditions=[
            {&quot;field&quot;: &quot;transfers_in_1h&quot;, &quot;operator&quot;: &quot;&amp;gt;&quot;, &quot;value&quot;: 5},
            {&quot;field&quot;: &quot;total_amount&quot;,    &quot;operator&quot;: &quot;&amp;gt;&quot;, &quot;value&quot;: 50_000},
        ],
        conclusion=&quot;flag_velocity_breach&quot;,
        rule_type=RuleType.IMPLICATION,
    ),
])

rete.add_fact(Fact(&quot;tx_001&quot;, &quot;transaction&quot;, [{&quot;amount&quot;: 15_000, &quot;country&quot;: &quot;IR&quot;}]))
flagged = rete.match_patterns()
# → [{&quot;rule&quot;: &quot;aml_flag&quot;, &quot;matched_facts&quot;: [&quot;tx_001&quot;], &quot;conclusion&quot;: &quot;flag_for_compliance_review&quot;}]
&lt;/code&gt;&lt;/pre&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;strong&gt;Current limitation:&lt;/strong&gt; &lt;code&gt;ReteEngine&lt;/code&gt;&#39;s alpha-node condition matcher is intentionally simple in this release — validate &lt;code&gt;match_patterns()&lt;/code&gt; output against your actual rule set before wiring it into a production compliance gate; more selective condition evaluation is on the roadmap.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Recursive Datalog - natural language for graph queries
from semantica.reasoning import DatalogReasoner

engine = DatalogReasoner()
engine.add_fact(&quot;parent(tom, bob)&quot;)
engine.add_fact(&quot;parent(bob, ann)&quot;)
engine.add_fact(&quot;parent(ann, pat)&quot;)
engine.add_rule(&quot;ancestor(X, Y) :- parent(X, Y).&quot;)
engine.add_rule(&quot;ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).&quot;)
ancestors = engine.query(&quot;ancestor(tom, ?X)&quot;)
# → [{&quot;X&quot;: &quot;bob&quot;}, {&quot;X&quot;: &quot;ann&quot;}, {&quot;X&quot;: &quot;pat&quot;}]
&lt;/code&gt;&lt;/pre&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Explainable reasoning - trace the path, not just the answer
from semantica.reasoning import ExplanationGenerator, Reasoner

reasoner = Reasoner()
reasoner.add_fact(&quot;parent(tom, bob)&quot;)
reasoner.add_rule(&quot;ancestor(X, Y) :- parent(X, Y)&quot;)
result = reasoner.forward_chain()

explainer = ExplanationGenerator()
explanation = explainer.generate_explanation(result)
# → Explanation(conclusion=&quot;...&quot;, steps=[ReasoningStep(...)], justification=Justification(...))
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.vector_store&lt;/code&gt;&lt;/b&gt;: Hybrid &amp;amp; Filtered Semantic Search&lt;/summary&gt; 
 &lt;a id=&quot;semanticavector_store-hybrid--filtered-semantic-search&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Drop-in vector store with multiple backends, hybrid search, and decision-aware retrieval.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.vector_store import VectorStore, HybridSearch

# In-memory backend shown here: HybridSearch and explain_decision() work out of the box.
# Swap backend=&quot;qdrant&quot; / &quot;weaviate&quot; / &quot;milvus&quot; / &quot;pinecone&quot; / &quot;pgvector&quot; / &quot;faiss&quot; once you
# scale past a single process — search() and store_decision() work identically on all of them.
vs = VectorStore(backend=&quot;inmemory&quot;, dimension=1536)

# Store a decision with scenario description and outcome
vs.store_decision(
    scenario=&quot;Personal loan A-7291, $85k income, 31% DTI, 3yr employment&quot;,
    outcome=&quot;approved&quot;,
    confidence=0.94,
    category=&quot;loan_underwriting&quot;,
)

# Semantic similarity search
results = vs.search(
    query=&quot;personal loan approval with low DTI&quot;,
    limit=10,
)

# Hybrid search - dense + sparse retrieval in one pass with RRF fusion
hs   = HybridSearch(vector_store=vs)
hits = hs.search(&quot;high-risk transactions 2024&quot;)

# Explain why a decision was retrieved
explanation = vs.explain_decision(results[0][&quot;id&quot;])
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;&lt;strong&gt;Backends:&lt;/strong&gt; &lt;code&gt;faiss&lt;/code&gt; · &lt;code&gt;qdrant&lt;/code&gt; · &lt;code&gt;weaviate&lt;/code&gt; · &lt;code&gt;milvus&lt;/code&gt; · &lt;code&gt;pinecone&lt;/code&gt; · &lt;code&gt;pgvector&lt;/code&gt; · &lt;code&gt;sqlite&lt;/code&gt; · &lt;code&gt;inmemory&lt;/code&gt;&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.split&lt;/code&gt;&lt;/b&gt;: GraphRAG-Native Document Chunking&lt;/summary&gt; 
 &lt;a id=&quot;semanticasplit-graphrag-native-document-chunking&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;KG-aware splitting that preserves entity boundaries, relation triplets, and ontology concepts, essential for GraphRAG pipelines.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.split import TextSplitter, EntityAwareChunker, RelationAwareChunker

text = open(&quot;contracts/master_agreement.txt&quot;).read()

# Standard recursive chunking
chunks = TextSplitter(method=&quot;recursive&quot;, chunk_size=1000, chunk_overlap=200).split(text)

# Entity-aware chunking - never splits a named entity across chunks (GraphRAG)
chunks = TextSplitter(method=&quot;entity_aware&quot;, ner_method=&quot;llm&quot;, chunk_size=1000).split(text)

# Relation-aware chunking - preserves (subject, predicate, object) triplets intact
chunks = RelationAwareChunker(chunk_size=1000, preserve_triplets=True).chunk(text)

# Graph-based chunking - uses centrality to find natural community boundaries
chunks = TextSplitter(method=&quot;graph_based&quot;, chunk_size=1000).split(text)

# Hierarchical chunking - multi-level (section → paragraph → sentence)
chunks = TextSplitter(method=&quot;hierarchical&quot;, levels=[&quot;section&quot;, &quot;paragraph&quot;]).split(text)
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;&lt;strong&gt;Supported methods:&lt;/strong&gt; &lt;code&gt;recursive&lt;/code&gt; · &lt;code&gt;token&lt;/code&gt; · &lt;code&gt;sentence&lt;/code&gt; · &lt;code&gt;paragraph&lt;/code&gt; · &lt;code&gt;semantic_transformer&lt;/code&gt; · &lt;code&gt;entity_aware&lt;/code&gt; · &lt;code&gt;relation_aware&lt;/code&gt; · &lt;code&gt;graph_based&lt;/code&gt; · &lt;code&gt;ontology_aware&lt;/code&gt; · &lt;code&gt;hierarchical&lt;/code&gt; · &lt;code&gt;community_detection&lt;/code&gt; · &lt;code&gt;centrality_based&lt;/code&gt; · &lt;code&gt;llm&lt;/code&gt;&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.provenance&lt;/code&gt;&lt;/b&gt;: W3C PROV-O Lineage&lt;/summary&gt; 
 &lt;a id=&quot;semanticaprovenance-w3c-prov-o-lineage&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Every fact is linked to its source. No black boxes, no mystery outputs.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.provenance import ProvenanceManager

prov = ProvenanceManager(storage_path=&quot;./provenance.db&quot;)

# Track where every entity came from
prov.track_entity(
    entity_id=&quot;acme_corp&quot;,
    source=&quot;contracts/acme_master_agreement_2024.pdf&quot;,
    metadata={&quot;page&quot;: 1, &quot;confidence&quot;: 0.97, &quot;extractor&quot;: &quot;NamedEntityRecognizer&quot;},
)

# Track a relationship&#39;s provenance - entity linkage travels in metadata
prov.track_relationship(
    relationship_id=&quot;alice_works_for_acme&quot;,
    source=&quot;hr_records/employees_q1_2024.csv&quot;,
    metadata={&quot;source_entity_id&quot;: &quot;alice_chen&quot;, &quot;target_entity_id&quot;: &quot;acme_corp&quot;},
)

# Answer &quot;where did this come from?&quot;
lineage = prov.get_lineage(&quot;acme_corp&quot;)
trail   = prov.trace_lineage(&quot;alice_chen&quot;)   # full ancestor chain
entry   = prov.get_provenance(&quot;acme_corp&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.ontology&lt;/code&gt;&lt;/b&gt;: OWL Generation, SHACL Validation&lt;/summary&gt; 
 &lt;a id=&quot;semanticaontology-owl-generation-shacl-validation&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Generate ontologies from data, validate shapes, and manage your vocabulary.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.ontology import OntologyGenerator, OntologyValidator

data = {
    &quot;entities&quot;: [
        {&quot;id&quot;: &quot;acme_corp&quot;,  &quot;type&quot;: &quot;Organization&quot;, &quot;industry&quot;: &quot;SaaS&quot;, &quot;founded&quot;: 2012},
        {&quot;id&quot;: &quot;alice_chen&quot;, &quot;type&quot;: &quot;Person&quot;,        &quot;role&quot;: &quot;CTO&quot;,     &quot;since&quot;: 2019},
    ],
    &quot;relationships&quot;: [
        {&quot;source&quot;: &quot;alice_chen&quot;, &quot;target&quot;: &quot;acme_corp&quot;, &quot;type&quot;: &quot;works_for&quot;},
    ],
}

gen       = OntologyGenerator(base_uri=&quot;https://semantica.dev/ontology/&quot;)
ontology  = gen.generate_ontology(data)
classes   = gen.infer_classes(data)
props     = gen.infer_properties(data, classes)
optimized = gen.optimize_ontology(ontology)

# Validate against SHACL shapes
validator = OntologyValidator()
report    = validator.validate(ontology)
# → ValidationResult(valid=True, consistent=True, satisfiable=True, errors=[], warnings=[])
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.conflicts&lt;/code&gt;&lt;/b&gt;: Conflict Detection &amp;amp; Resolution&lt;/summary&gt; 
 &lt;a id=&quot;semanticaconflicts-conflict-detection--resolution&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Detect and resolve conflicting facts from multiple sources before they corrupt your knowledge base.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.conflicts import ConflictDetector, ConflictResolver, SourceTracker

entities_from_source_a = [
    {&quot;id&quot;: &quot;alice_chen&quot;, &quot;role&quot;: &quot;CTO&quot;,   &quot;salary&quot;: 250_000, &quot;start_date&quot;: &quot;2019-03-01&quot;},
]
entities_from_source_b = [
    {&quot;id&quot;: &quot;alice_chen&quot;, &quot;role&quot;: &quot;VP Eng&quot;, &quot;salary&quot;: 275_000, &quot;start_date&quot;: &quot;2019-03-01&quot;},
]

# Detect all conflict types: value, type, relationship, temporal, logical
detector   = ConflictDetector()
conflicts  = detector.detect_conflicts(entities_from_source_a + entities_from_source_b)
# → [Conflict(entity=&quot;alice_chen&quot;, field=&quot;role&quot;,   values=[&quot;CTO&quot;,&quot;VP Eng&quot;], severity=&quot;HIGH&quot;),
#    Conflict(entity=&quot;alice_chen&quot;, field=&quot;salary&quot;,  values=[250000,275000],   severity=&quot;MEDIUM&quot;)]

# Resolve using multiple strategies
resolver = ConflictResolver()
resolved = resolver.resolve_conflicts(conflicts, strategy=&quot;credibility_weighted&quot;)  # weighted by source trust
resolved = resolver.resolve_conflicts(conflicts, strategy=&quot;most_recent&quot;)          # prefer most recent
resolved = resolver.resolve_conflicts(conflicts, strategy=&quot;voting&quot;)               # majority wins

# Track source credibility over time
tracker = SourceTracker()
tracker.register_source(&quot;source_a&quot;, source_type=&quot;document&quot;, credibility_score=0.85)
tracker.register_source(&quot;source_b&quot;, source_type=&quot;document&quot;, credibility_score=0.72)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.deduplication&lt;/code&gt;&lt;/b&gt;: Entity Resolution at Scale&lt;/summary&gt; 
 &lt;a id=&quot;semanticadeduplication-entity-resolution-at-scale&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Block, cluster, and merge duplicates with semantic similarity.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.deduplication import DuplicateDetector, EntityMerger

entities = [
    {&quot;id&quot;: &quot;e1&quot;, &quot;name&quot;: &quot;Acme Corporation&quot;,  &quot;domain&quot;: &quot;acme.com&quot;},
    {&quot;id&quot;: &quot;e2&quot;, &quot;name&quot;: &quot;Acme Corp.&quot;,         &quot;domain&quot;: &quot;acme.com&quot;},
    {&quot;id&quot;: &quot;e3&quot;, &quot;name&quot;: &quot;ACME Corp&quot;,          &quot;domain&quot;: &quot;acme.co&quot;},
    {&quot;id&quot;: &quot;e4&quot;, &quot;name&quot;: &quot;Globex Industries&quot;,  &quot;domain&quot;: &quot;globex.com&quot;},
]

detector   = DuplicateDetector(similarity_threshold=0.75, use_clustering=True)
candidates = detector.detect_duplicates(entities)
groups     = detector.detect_duplicate_groups(entities)
# → DuplicateGroup(entities=[&quot;e1&quot;,&quot;e2&quot;,&quot;e3&quot;], confidence=0.91, strategy=&quot;semantic+blocking&quot;)

merger  = EntityMerger(preserve_provenance=True)
ops     = merger.merge_duplicates(entities, strategy=&quot;keep_most_complete&quot;)
history = merger.get_merge_history()
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.normalize&lt;/code&gt;&lt;/b&gt;: Data Normalization &amp;amp; Cleaning&lt;/summary&gt; 
 &lt;a id=&quot;semanticanormalize-data-normalization--cleaning&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Standardize text, entities, dates, numbers, and encodings before building your knowledge graph.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.normalize import (
    TextNormalizer,
    EntityNormalizer,
    DateNormalizer,
    NumberNormalizer,
    DataCleaner,
)

# Unicode, whitespace, casing, HTML tags, smart quotes
text  = TextNormalizer().normalize(&quot;  Acme Corp.&#39;s Q4 report...  &quot;)
# → &quot;Acme Corp.&#39;s Q4 report...&quot;

# Alias resolution + entity disambiguation with confidence scores
canonical = EntityNormalizer().normalize_entity(&quot;ACME Corp.&quot;)
# → NormalizedEntity(canonical=&quot;Acme Corporation&quot;, type=&quot;Organization&quot;, confidence=0.91)

# Natural language date parsing with timezone conversion
dt    = DateNormalizer().normalize_date(&quot;3 weeks ago&quot;)
# → datetime(2026, 7, 1, tzinfo=UTC)

# Unit conversion and currency normalization
price = NumberNormalizer().normalize_number(&quot;$1.25M USD&quot;)
# → NormalizedNumber(value=1_250_000, currency=&quot;USD&quot;)

# Deduplicate, validate, and impute missing values across a dataset
clean = DataCleaner().clean_data(records, remove_duplicates=True, handle_missing=True)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.pipeline&lt;/code&gt;&lt;/b&gt;: Pipeline DSL&lt;/summary&gt; 
 &lt;a id=&quot;semanticapipeline-pipeline-dsl&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Compose ingestion, extraction, and graph-building into a declarative, parallel pipeline.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.pipeline import PipelineBuilder, ExecutionEngine

builder = PipelineBuilder()

# add_step() returns the created PipelineStep, not the builder, so these don&#39;t chain
builder.add_step(&quot;ingest&quot;,      step_type=&quot;ingest&quot;,           source=&quot;./contracts/&quot;, recursive=True)
builder.add_step(&quot;extract&quot;,     step_type=&quot;ner_extract&quot;)
builder.add_step(&quot;relations&quot;,   step_type=&quot;relation_extract&quot;)
builder.add_step(&quot;build_kg&quot;,    step_type=&quot;kg_build&quot;,         merge_entities=True)
builder.add_step(&quot;deduplicate&quot;, step_type=&quot;deduplicate&quot;,      threshold=0.75)
builder.add_step(&quot;export&quot;,      step_type=&quot;export&quot;,           format=&quot;turtle&quot;, output=&quot;kg.ttl&quot;)

# connect_steps() and set_parallelism() return the builder, so these do chain
pipeline = (
    builder
    .connect_steps(&quot;ingest&quot;,      &quot;extract&quot;)
    .connect_steps(&quot;extract&quot;,     &quot;relations&quot;)
    .connect_steps(&quot;relations&quot;,   &quot;build_kg&quot;)
    .connect_steps(&quot;build_kg&quot;,    &quot;deduplicate&quot;)
    .connect_steps(&quot;deduplicate&quot;, &quot;export&quot;)
    .set_parallelism(4)
    .build(name=&quot;contracts_pipeline&quot;)
)

engine   = ExecutionEngine()
result   = engine.execute_pipeline(pipeline)
status   = engine.get_pipeline_status(pipeline.name)
progress = engine.get_progress(pipeline.name)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Temporal Intelligence&lt;/b&gt;: Bi-Temporal Graphs &amp;amp; Time Travel&lt;/summary&gt; 
 &lt;a id=&quot;temporal-intelligence-bi-temporal-graphs--time-travel&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Track when facts were true &lt;em&gt;in the world&lt;/em&gt; vs. when they were &lt;em&gt;recorded&lt;/em&gt;, and query either axis.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.context import ContextGraph
from semantica.kg import (
    BiTemporalFact,
    TemporalGraphQuery,
    TemporalNormalizer,
)
from datetime import datetime

graph = ContextGraph(advanced_analytics=True)
graph.add_node(&quot;alice_chen&quot;, &quot;Person&quot;,       role=&quot;VP Engineering&quot;)
graph.add_node(&quot;acme_corp&quot;,  &quot;Organization&quot;, valuation=1_200_000_000)

# A temporally-bounded edge - valid_from/valid_until define when it held true
graph.add_edge(
    &quot;alice_chen&quot;, &quot;acme_corp&quot;, edge_type=&quot;works_for&quot;,
    valid_from=&quot;2024-03-01T00:00:00&quot;, valid_until=&quot;2025-01-01T00:00:00&quot;,
)

# Point-in-time snapshots - replay history without reprocessing
snapshot_2023 = graph.state_at(&quot;2023-06-01&quot;)
snapshot_2024 = graph.state_at(&quot;2024-01-01&quot;)

# Bi-temporal facts - valid_time is when true in the world;
# recorded_at is when you learned about it
fact = BiTemporalFact(
    valid_from=datetime(2024, 3, 1),
    valid_until=datetime(2025, 1, 1),
    recorded_at=datetime(2024, 3, 5),
)

# Query facts valid within a time window - query_time_range() expects
# {&quot;relationships&quot;: [...]} with source_id/target_id keys, which differs from
# ContextGraph.to_dict()&#39;s {&quot;nodes&quot;, &quot;edges&quot;} shape, so map it first
graph_dict = graph.to_dict()
kg_relationships = {
    &quot;relationships&quot;: [
        {**e, &quot;source_id&quot;: e[&quot;source&quot;], &quot;target_id&quot;: e[&quot;target&quot;]}
        for e in graph_dict[&quot;edges&quot;]
    ]
}

tq = TemporalGraphQuery()
facts_in_window = tq.query_time_range(
    kg_relationships, query=&quot;valid_facts&quot;, start_time=&quot;2024-01-01&quot;, end_time=&quot;2024-12-31&quot;
)

# Normalize natural language temporal expressions - returns a (start, end) range
norm = TemporalNormalizer()
start, end = norm.normalize(&quot;last quarter&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.export&lt;/code&gt;&lt;/b&gt;: RDF, OWL, Parquet, Cypher, JSON-LD&lt;/summary&gt; 
 &lt;a id=&quot;semanticaexport-rdf-owl-parquet-cypher-json-ld&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Export to any format required by regulators, graph databases, or downstream systems.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.export import (
    RDFExporter,
    JSONExporter,
    ParquetExporter,
    LPGExporter,
    ReportGenerator,
)

kg = {&quot;entities&quot;: [...], &quot;relationships&quot;: [...]}

rdf = RDFExporter()
turtle_str = rdf.export_to_rdf(kg, format=&quot;turtle&quot;)     # returns string
jsonld_str = rdf.export_to_rdf(kg, format=&quot;json-ld&quot;)

rdf.export(kg, &quot;kg_audit.ttl&quot;,    format=&quot;turtle&quot;)
rdf.export(kg, &quot;kg_audit.jsonld&quot;, format=&quot;json-ld&quot;)
rdf.export(kg, &quot;kg_audit.nt&quot;,     format=&quot;n-triples&quot;)

# Columnar analytics - Snappy-compressed Parquet (writes kg_snapshot_entities.parquet
# and kg_snapshot_relationships.parquet)
ParquetExporter(compression=&quot;snappy&quot;).export_knowledge_graph(kg, &quot;kg_snapshot&quot;)

# JSON knowledge graph
JSONExporter().export_knowledge_graph(kg, &quot;kg.json&quot;)

# Neo4j / Memgraph Cypher statements for graph database import
LPGExporter().export(kg, &quot;kg_import.cypher&quot;)

# Human-readable HTML report
ReportGenerator().generate_report(
    {&quot;title&quot;: &quot;KG Audit Report&quot;, &quot;summary&quot;: &quot;Weekly ingestion summary&quot;, &quot;metrics&quot;: {&quot;entities&quot;: len(kg[&quot;entities&quot;])}},
    file_path=&quot;audit_report.html&quot;,
    format=&quot;html&quot;,
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;&lt;code&gt;semantica.visualization&lt;/code&gt;&lt;/b&gt;: Interactive Graph Workbench&lt;/summary&gt; 
 &lt;a id=&quot;semanticavisualization-interactive-graph-workbench&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;Render force-directed graphs, community maps, ontology hierarchies, and temporal dashboards.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.visualization import (
    KGVisualizer,
    OntologyVisualizer,
    EmbeddingVisualizer,
    TemporalVisualizer,
)
import numpy as np

kg = {&quot;entities&quot;: [...], &quot;relationships&quot;: [...]}

# Interactive force-directed graph (opens in browser)
viz = KGVisualizer(layout=&quot;force&quot;, color_scheme=&quot;default&quot;)
viz.visualize_network(kg, output=&quot;interactive&quot;, file_path=&quot;kg.html&quot;)
viz.visualize_communities(kg, communities, output=&quot;interactive&quot;)
viz.visualize_centrality(kg, centrality, centrality_type=&quot;degree&quot;)
viz.visualize_entity_types(kg, output=&quot;html&quot;, file_path=&quot;entity_types.html&quot;)

# Ontology class hierarchy
OntologyVisualizer().visualize_hierarchy(ontology, output=&quot;interactive&quot;)

# 2D embedding projection (UMAP / t-SNE / PCA)
EmbeddingVisualizer().visualize_2d_projection(
    embeddings=np.array([...]),
    labels=[&quot;entity_a&quot;, &quot;entity_b&quot;],
    method=&quot;umap&quot;,
)

# Timeline scrubber - watch the graph evolve
TemporalVisualizer().visualize_timeline(kg, output=&quot;interactive&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Multi-Agent Shared Context with Agno&lt;/b&gt;&lt;/summary&gt; 
 &lt;a id=&quot;multi-agent-shared-context-with-agno&quot;&gt;&lt;/a&gt; 
 &lt;p&gt;One shared intelligence layer. All agents read and write to the same context graph.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# pip install semantica[agno]
from agno.agent import Agent
from agno.team import Team
from agno.models.anthropic import Claude
from semantica.context import ContextGraph
from semantica.vector_store import VectorStore
from integrations.agno import AgnoSharedContext, AgnoDecisionKit, AgnoKGToolkit

shared = AgnoSharedContext(
    vector_store=VectorStore(backend=&quot;faiss&quot;),
    knowledge_graph=ContextGraph(advanced_analytics=True),
    decision_tracking=True,
)

researcher = Agent(
    name=&quot;Researcher&quot;,
    model=Claude(id=&quot;claude-sonnet-4-5&quot;),
    memory=shared.bind_agent(&quot;researcher&quot;),
    tools=[AgnoKGToolkit(context=shared)],
)
analyst = Agent(
    name=&quot;Analyst&quot;,
    model=Claude(id=&quot;claude-sonnet-4-5&quot;),
    memory=shared.bind_agent(&quot;analyst&quot;),
    tools=[AgnoDecisionKit(context=shared)],
)

team = Team(agents=[researcher, analyst], mode=&quot;coordinate&quot;)
# Researcher&#39;s findings are instantly available to the Analyst - no copy, no sync
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;→ &lt;a href=&quot;https://github.com/semantica-agi/semantica/tree/main/cookbook&quot;&gt;runnable notebooks in the cookbook&lt;/a&gt;, each self-contained and runnable in under 5 minutes&lt;/p&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;More Recipes&lt;/h2&gt; 
&lt;p&gt;The flagship audit-trail recipe is &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#recipe-audit-trail-for-a-regulated-decision&quot;&gt;above&lt;/a&gt;. Here are three more common patterns.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;End-to-End GraphRAG Pipeline&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.ingest import FileIngestor
from semantica.split import TextSplitter
from semantica.semantic_extract import NamedEntityRecognizer, RelationExtractor
from semantica.kg import GraphBuilder
from semantica.vector_store import VectorStore, HybridSearch
from semantica.context import AgentContext

# 1. Ingest
docs = FileIngestor().ingest_directory(&quot;./docs/&quot;, recursive=True)

# 2. Entity-aware chunking - never splits an entity across a chunk boundary
splitter = TextSplitter(method=&quot;entity_aware&quot;, chunk_size=1000)
chunks   = [splitter.split(doc[&quot;text&quot;]) for doc in docs]

# 3. Extract entities and relations
ner      = NamedEntityRecognizer(confidence_threshold=0.7)
rel_ext  = RelationExtractor(confidence_threshold=0.6)
entities = [ner.extract_entities(chunk) for chunk_group in chunks for chunk in chunk_group]

# 4. Build KG
kg = GraphBuilder(merge_entities=True, enable_temporal=True).build(docs)

# 5. Hybrid retrieval
vs  = VectorStore(backend=&quot;inmemory&quot;)
ctx = AgentContext(vector_store=vs, knowledge_graph=kg)
ctx.store(&quot;Alice approved the Acme renewal in Q1 2024&quot;, conversation_id=&quot;c1&quot;)

results = HybridSearch(vector_store=vs).search(&quot;who approved the renewal?&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;AML Rules Engine&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.reasoning import ReteEngine, Rule, Fact, RuleType

rete = ReteEngine()
rete.build_network([
    Rule(
        rule_id=&quot;sanctions_check&quot;,
        name=&quot;Flag sanctioned-country transactions&quot;,
        conditions=[
            {&quot;field&quot;: &quot;amount&quot;,  &quot;operator&quot;: &quot;&amp;gt;&quot;,  &quot;value&quot;: 10_000},
            {&quot;field&quot;: &quot;country&quot;, &quot;operator&quot;: &quot;in&quot;, &quot;value&quot;: [&quot;IR&quot;, &quot;KP&quot;, &quot;SY&quot;, &quot;CU&quot;]},
        ],
        conclusion=&quot;flag_for_compliance_review&quot;,
        rule_type=RuleType.IMPLICATION,
    ),
])

# Run the rule across a batch of incoming transactions, not just one
for tx in [
    Fact(&quot;tx_101&quot;, &quot;transaction&quot;, [{&quot;amount&quot;: 25_000, &quot;country&quot;: &quot;IR&quot;}]),
    Fact(&quot;tx_102&quot;, &quot;transaction&quot;, [{&quot;amount&quot;: 4_500,  &quot;country&quot;: &quot;DE&quot;}]),
    Fact(&quot;tx_103&quot;, &quot;transaction&quot;, [{&quot;amount&quot;: 60_000, &quot;country&quot;: &quot;KP&quot;}]),
]:
    rete.add_fact(tx)

flagged = rete.match_patterns()
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;Same condition-matcher caveat as &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#semanticareasoning-forward-chaining-rete-datalog-sparql&quot;&gt;above&lt;/a&gt; applies — validate against your rule set before production use.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Ontology-to-Knowledge-Graph in One Pass&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from semantica.ingest import FileIngestor
from semantica.semantic_extract import NamedEntityRecognizer, RelationExtractor
from semantica.kg import GraphBuilder
from semantica.ontology import OntologyGenerator, OntologyValidator
from semantica.export import RDFExporter

sources   = FileIngestor().ingest_directory(&quot;./contracts/&quot;)
ner       = NamedEntityRecognizer(confidence_threshold=0.7)
entities  = ner.process_batch([s[&quot;text&quot;] for s in sources])

kg  = GraphBuilder(merge_entities=True).build(sources)
gen = OntologyGenerator(base_uri=&quot;https://myco.dev/ontology/&quot;)
ont = gen.generate_ontology({&quot;entities&quot;: entities[0], &quot;relationships&quot;: []})

report = OntologyValidator().validate(ont)
if report.valid:
    RDFExporter().export({&quot;entities&quot;: entities[0]}, &quot;ontology.ttl&quot;, format=&quot;turtle&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Features at a Glance&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Capability&lt;/th&gt; 
   &lt;th&gt;Highlights&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Context Graphs&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Queryable graph of entities, decisions, relationships; causal links; cross-graph navigation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Decision Intelligence&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;record_decision&lt;/code&gt; · &lt;code&gt;trace_decision_chain&lt;/code&gt; · &lt;code&gt;find_similar_decisions&lt;/code&gt; · &lt;code&gt;analyze_decision_impact&lt;/code&gt; · &lt;code&gt;check_decision_rules&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Temporal Intelligence&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Point-in-time snapshots · Allen interval algebra (13 relations) · &lt;code&gt;TemporalNormalizer&lt;/code&gt; · bi-temporal provenance&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Distance Intelligence&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;N×N semantic distance matrices · ego-mode visualization · distance bands · embedding cache&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Semantic Extraction&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;NER · relation extraction · event detection · triplet generation · coreference&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Reasoning Engines&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Forward chaining · Rete · deductive · abductive · SPARQL · Datalog with explainable output&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GraphRAG Chunking&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Entity-aware · relation-aware · graph-based · ontology-aware · community-detection chunking&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Conflict Detection&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Value / type / relationship / temporal / logical conflicts · multiple resolution strategies&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Provenance&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;W3C PROV-O · every fact traced to source · audit log export JSON/CSV/RDF&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Ontology Hub&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;SHACL Studio · visual editor · cross-ontology alignments · health dashboard&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Vector Store&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;FAISS · Pinecone · Weaviate · Qdrant · Milvus · PgVector · hybrid + filtered search&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Graph Databases (LPG)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Neo4j · FalkorDB · Apache AGE · AWS Neptune&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Triple Stores (RDF)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Oxigraph (embedded) · Blazegraph · Apache Jena · Eclipse RDF4J · unified &lt;code&gt;TripletStore&lt;/code&gt; interface · SPARQL query &amp;amp; bulk load&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Enterprise Data Platforms&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Databricks (&lt;code&gt;DatabricksIngestor&lt;/code&gt;: Unity Catalog + Delta Lake, PAT/OAuth M2M, table/query ingestion, catalog/schema/table/lineage introspection) · Snowflake (&lt;code&gt;SnowflakeIngestor&lt;/code&gt;: warehouse/database/schema, password/key-pair/OAuth auth)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;LLM Providers&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;All already supported today:&lt;/strong&gt; OpenAI (GPT-4o, o1, o3) · Anthropic (Claude) · Google Gemini · Mistral · Meta Llama · Groq · Cohere · Azure OpenAI · AWS Bedrock · Ollama · DeepSeek · Perplexity · Together AI · Fireworks AI · Replicate · HuggingFace · via &lt;code&gt;semantica.llms&lt;/code&gt; and LiteLLM&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Performance&lt;/h2&gt; 
&lt;p&gt;Benchmarks from v0.5.0 on a 118,000-node production graph:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Operation&lt;/th&gt; 
   &lt;th&gt;Before&lt;/th&gt; 
   &lt;th&gt;After&lt;/th&gt; 
   &lt;th&gt;Improvement&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Node search (118k nodes)&lt;/td&gt; 
   &lt;td&gt;24 ms&lt;/td&gt; 
   &lt;td&gt;0.004 ms&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;6,000×&lt;/strong&gt; faster&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Embedding cache hit&lt;/td&gt; 
   &lt;td&gt;cold load&lt;/td&gt; 
   &lt;td&gt;revision-based cache&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;10×&lt;/strong&gt; throughput&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Semantic deduplication&lt;/td&gt; 
   &lt;td&gt;baseline&lt;/td&gt; 
   &lt;td&gt;optimized candidate gen&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;6.98×&lt;/strong&gt; faster&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Candidate generation&lt;/td&gt; 
   &lt;td&gt;baseline&lt;/td&gt; 
   &lt;td&gt;blocking strategy&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;63.6%&lt;/strong&gt; faster&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;em&gt;Measured on a 118,000-node production graph (AMD EPYC, 64 GB RAM); the deduplication/candidate-generation figures are historical measurements recorded in &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/CHANGELOG.md&quot;&gt;CHANGELOG.md&lt;/a&gt; rather than an automated &lt;code&gt;tests/&lt;/code&gt; assertion. Results vary by hardware, dataset topology, and backend selection — run &lt;code&gt;pytest tests/vector_store/test_performance_benchmarks.py -s&lt;/code&gt; to measure your own data.&lt;/em&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;CLI&lt;/h2&gt; 
&lt;p&gt;Every capability is available from the terminal. The CLI ships with the package, no separate install required.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install semantica
semantica        # startup dashboard
semantica doctor # health check
semantica --help # full grouped command reference
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Start with &lt;code&gt;semantica&lt;/code&gt;, verify with &lt;code&gt;doctor&lt;/code&gt;, build a graph, and explore the command groups from one terminal.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Command groups:&lt;/strong&gt; &lt;code&gt;ingest&lt;/code&gt; · &lt;code&gt;parse&lt;/code&gt; · &lt;code&gt;extract&lt;/code&gt; · &lt;code&gt;kg&lt;/code&gt; · &lt;code&gt;reason&lt;/code&gt; · &lt;code&gt;decision&lt;/code&gt; · &lt;code&gt;temporal&lt;/code&gt; · &lt;code&gt;provenance&lt;/code&gt; · &lt;code&gt;ontology&lt;/code&gt; · &lt;code&gt;embed&lt;/code&gt; · &lt;code&gt;deduplicate&lt;/code&gt; · &lt;code&gt;validate&lt;/code&gt; · &lt;code&gt;export&lt;/code&gt; · &lt;code&gt;visualize&lt;/code&gt; · &lt;code&gt;pipeline&lt;/code&gt; · &lt;code&gt;server&lt;/code&gt; · &lt;code&gt;explorer&lt;/code&gt; · &lt;code&gt;mcp&lt;/code&gt; · &lt;code&gt;doctor&lt;/code&gt; · &lt;code&gt;shell&lt;/code&gt; · &lt;code&gt;init&lt;/code&gt; · &lt;code&gt;watch&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;→ &lt;a href=&quot;https://docs.getsemantica.ai/&quot;&gt;Full CLI reference&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Integrations&lt;/h2&gt; 
&lt;p&gt;Native plugin bundles for Claude Code, Cursor, Codex, Windsurf, Cline, Continue, VS Code, and OpenClaw; a full-featured MCP server for any MCP-compatible client; a comprehensive REST API; and first-class Agno support for multi-agent shared context. Every major LLM provider is already supported via &lt;code&gt;semantica.llms&lt;/code&gt; and LiteLLM: OpenAI, Anthropic, Gemini, Mistral, Llama, Groq, Cohere, Azure, Bedrock, Ollama, DeepSeek, HuggingFace, and more.&lt;/p&gt; 
&lt;p&gt;MCP setup takes 30 seconds — see &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/#mcp-server&quot;&gt;MCP Server&lt;/a&gt; below.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Full integrations matrix&lt;/b&gt; (editors, MCP clients, REST clients, agentic frameworks)&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;tbody&gt;
   &lt;tr&gt; 
    &lt;th colspan=&quot;3&quot; align=&quot;left&quot;&gt;Native Plugin Bundle&lt;/th&gt; 
    &lt;th colspan=&quot;5&quot; align=&quot;left&quot;&gt;MCP Server + Plugin&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://claude.com/product/claude-code&quot;&gt;&lt;img src=&quot;https://github.com/anthropics.png?size=120&quot; alt=&quot;Claude Code&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Skills · agents · hooks&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://cursor.com&quot;&gt;&lt;img src=&quot;https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png&quot; alt=&quot;Cursor&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Cursor&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Skills · agents&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/openai/codex&quot;&gt;&lt;img src=&quot;https://github.com/openai.png?size=120&quot; alt=&quot;Codex CLI&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Skills · agents&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://windsurf.com&quot;&gt;&lt;img src=&quot;https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?sanitize=true&quot; alt=&quot;Windsurf&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Windsurf&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/plugins/.windsurf-plugin/&quot;&gt;plugin&lt;/a&gt;&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/cline/cline&quot;&gt;&lt;img src=&quot;https://github.com/cline.png?size=120&quot; alt=&quot;Cline&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Cline&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/plugins/.cline-plugin/&quot;&gt;plugin&lt;/a&gt;&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/continuedev/continue&quot;&gt;&lt;img src=&quot;https://github.com/continuedev.png?size=120&quot; alt=&quot;Continue&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Continue&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/plugins/.continue-plugin/&quot;&gt;plugin&lt;/a&gt;&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/microsoft/vscode&quot;&gt;&lt;img src=&quot;https://github.com/microsoft.png?size=120&quot; alt=&quot;VS Code&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;VS Code&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/plugins/.vscode-plugin/&quot;&gt;plugin&lt;/a&gt;&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/integrations/openclaw/&quot;&gt;&lt;img src=&quot;https://github.com/openclaw.png?size=120&quot; alt=&quot;OpenClaw&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;MCP + &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/integrations/openclaw/&quot;&gt;plugin&lt;/a&gt;&lt;/sub&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;th colspan=&quot;1&quot; align=&quot;left&quot;&gt;MCP Server&lt;/th&gt; 
    &lt;th colspan=&quot;7&quot; align=&quot;left&quot;&gt;REST API&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://claude.ai/download&quot;&gt;&lt;img src=&quot;https://github.com/anthropics.png?size=120&quot; alt=&quot;Claude Desktop&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Claude Desktop&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;MCP server&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/features/copilot&quot;&gt;&lt;img src=&quot;https://github.com/github.png?size=120&quot; alt=&quot;GitHub Copilot&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/RooCodeInc/Roo-Code&quot;&gt;&lt;img src=&quot;https://github.com/RooCodeInc.png?size=120&quot; alt=&quot;Roo Code&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Roo Code&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/block/goose&quot;&gt;&lt;img src=&quot;https://github.com/block.png?size=120&quot; alt=&quot;Goose&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Goose&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/Kilo-Org/kilocode&quot;&gt;&lt;img src=&quot;https://github.com/Kilo-Org.png?size=120&quot; alt=&quot;Kilo Code&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Kilo Code&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/Aider-AI/aider&quot;&gt;&lt;img src=&quot;https://github.com/Aider-AI.png?size=120&quot; alt=&quot;Aider&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Aider&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/aws/amazon-q-developer-cli&quot;&gt;&lt;img src=&quot;https://github.com/aws.png?size=120&quot; alt=&quot;Amazon Q&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Amazon Q&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://zed.dev&quot;&gt;&lt;img src=&quot;https://github.com/zed-industries.png?size=120&quot; alt=&quot;Zed&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Zed&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API&lt;/sub&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt;
 &lt;/table&gt; 
 &lt;h3&gt;Agentic Frameworks&lt;/h3&gt; 
 &lt;table&gt; 
  &lt;tbody&gt;
   &lt;tr&gt; 
    &lt;th colspan=&quot;8&quot; align=&quot;left&quot;&gt;Native Integration&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/agno-agi/agno&quot;&gt;&lt;img src=&quot;https://github.com/agno-agi.png?size=120&quot; alt=&quot;Agno&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Agno&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;First-class · &lt;code&gt;pip install semantica[agno]&lt;/code&gt;&lt;/sub&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;th colspan=&quot;8&quot; align=&quot;left&quot;&gt;Already Supported via REST API &amp;amp; MCP&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/langchain-ai/langchain&quot;&gt;&lt;img src=&quot;https://github.com/langchain-ai.png?size=120&quot; alt=&quot;LangChain&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;LangChain&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/langchain-ai/langgraph&quot;&gt;&lt;img src=&quot;https://github.com/langchain-ai.png?size=120&quot; alt=&quot;LangGraph&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;LangGraph&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/crewAIInc/crewAI&quot;&gt;&lt;img src=&quot;https://github.com/crewAIInc.png?size=120&quot; alt=&quot;CrewAI&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;CrewAI&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/run-llama/llama_index&quot;&gt;&lt;img src=&quot;https://github.com/run-llama.png?size=120&quot; alt=&quot;LlamaIndex&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;LlamaIndex&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/microsoft/autogen&quot;&gt;&lt;img src=&quot;https://github.com/microsoft.png?size=120&quot; alt=&quot;AutoGen&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;AutoGen&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/openai/openai-agents-python&quot;&gt;&lt;img src=&quot;https://github.com/openai.png?size=120&quot; alt=&quot;OpenAI Agents SDK&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;OpenAI Agents&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/google/adk-python&quot;&gt;&lt;img src=&quot;https://github.com/google.png?size=120&quot; alt=&quot;Google ADK&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Google ADK&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;REST API · MCP&lt;/sub&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;th colspan=&quot;8&quot; align=&quot;left&quot;&gt;Native SDK Integration (Coming Soon)&lt;/th&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/langchain-ai/langchain&quot;&gt;&lt;img src=&quot;https://github.com/langchain-ai.png?size=120&quot; alt=&quot;LangChain&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;LangChain&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/crewAIInc/crewAI&quot;&gt;&lt;img src=&quot;https://github.com/crewAIInc.png?size=120&quot; alt=&quot;CrewAI&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;CrewAI&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/run-llama/llama_index&quot;&gt;&lt;img src=&quot;https://github.com/run-llama.png?size=120&quot; alt=&quot;LlamaIndex&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;LlamaIndex&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/microsoft/autogen&quot;&gt;&lt;img src=&quot;https://github.com/microsoft.png?size=120&quot; alt=&quot;AutoGen&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;AutoGen&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/openai/openai-agents-python&quot;&gt;&lt;img src=&quot;https://github.com/openai.png?size=120&quot; alt=&quot;OpenAI Agents SDK&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;OpenAI Agents&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
    &lt;td align=&quot;center&quot; width=&quot;12.5%&quot;&gt; &lt;a href=&quot;https://github.com/google/adk-python&quot;&gt;&lt;img src=&quot;https://github.com/google.png?size=120&quot; alt=&quot;Google ADK&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Google ADK&lt;/strong&gt;&lt;br /&gt; &lt;sub&gt;Dedicated toolkit&lt;/sub&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt;
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;h3&gt;MCP Server&lt;/h3&gt; 
&lt;p&gt;Connect any MCP-compatible client (Claude Desktop, Windsurf, Cline, VS Code) in 30 seconds:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python -m semantica.mcp_server
# or via the installed entry point
semantica-mcp
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;semantica&quot;: { &quot;command&quot;: &quot;python&quot;, &quot;args&quot;: [&quot;-m&quot;, &quot;semantica.mcp_server&quot;] }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Tools exposed over MCP:&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Tool&lt;/th&gt; 
   &lt;th&gt;What it does&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;extract_entities&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;NER on any text&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;extract_relations&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Relation extraction&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;record_decision&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Persist a decision node&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;query_decisions&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Search decision history&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;find_precedents&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Semantic precedent lookup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;get_causal_chain&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Full causal ancestry&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;add_entity&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Add a KG node&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;add_relationship&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Add a KG edge&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;run_reasoning&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Execute rule set&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;get_graph_analytics&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Centrality, communities&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;export_graph&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Export to RDF/JSON/Parquet&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;get_graph_summary&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Graph statistics&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;REST API&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Start the backend
python -m semantica.server   # port 8000

# Extract entities &amp;amp; relations via REST
curl -X POST http://localhost:8000/api/enrich/extract \
  -H &quot;Content-Type: application/json&quot; \
  -d &#39;{&quot;text&quot;: &quot;Apple CEO Tim Cook announced record earnings.&quot;}&#39;

# List recorded decisions
curl &quot;http://localhost:8000/api/decisions?category=vendor_selection&quot;

# Query the knowledge graph
curl &quot;http://localhost:8000/api/graph/node/acme_corp/neighbors?depth=2&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;REST endpoints span:&lt;/strong&gt; &lt;code&gt;enrich&lt;/code&gt; (extract) · &lt;code&gt;graph&lt;/code&gt; · &lt;code&gt;decisions&lt;/code&gt; · &lt;code&gt;reasoning&lt;/code&gt; · &lt;code&gt;provenance&lt;/code&gt; · &lt;code&gt;ontology&lt;/code&gt; · &lt;code&gt;embeddings&lt;/code&gt; · &lt;code&gt;search&lt;/code&gt; · &lt;code&gt;export&lt;/code&gt; · &lt;code&gt;pipeline&lt;/code&gt; · &lt;code&gt;temporal&lt;/code&gt; · &lt;code&gt;deduplication&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;Plugin Bundles&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Domain skills:&lt;/strong&gt; &lt;code&gt;extract&lt;/code&gt; · &lt;code&gt;ingest&lt;/code&gt; · &lt;code&gt;query&lt;/code&gt; · &lt;code&gt;ontology&lt;/code&gt; · &lt;code&gt;validate&lt;/code&gt; · &lt;code&gt;deduplicate&lt;/code&gt; · &lt;code&gt;embed&lt;/code&gt; · &lt;code&gt;reason&lt;/code&gt; · &lt;code&gt;decision&lt;/code&gt; · &lt;code&gt;causal&lt;/code&gt; · &lt;code&gt;temporal&lt;/code&gt; · &lt;code&gt;provenance&lt;/code&gt; · &lt;code&gt;policy&lt;/code&gt; · &lt;code&gt;explain&lt;/code&gt; · &lt;code&gt;export&lt;/code&gt; · &lt;code&gt;change&lt;/code&gt; · &lt;code&gt;visualize&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Specialized agents:&lt;/strong&gt; &lt;code&gt;kg-assistant&lt;/code&gt; · &lt;code&gt;decision-advisor&lt;/code&gt; · &lt;code&gt;explainability&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;Bundles for Claude Code, Cursor, Codex, Windsurf, Cline, Continue, VS Code, and OpenClaw in &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/plugins/&quot;&gt;&lt;code&gt;plugins/&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Knowledge Explorer&lt;/h2&gt; 
&lt;p&gt;A browser-based graph workbench. Pan and zoom live graphs, scrub the timeline, review every decision&#39;s causal chain, resolve duplicates, and author your ontology visually. Built on React 19 + Sigma.js.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Workspace&lt;/th&gt; 
   &lt;th&gt;What you can do&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Knowledge Graph&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Live Sigma.js canvas with ForceAtlas2 layout, Ego Mode, semantic distance heatmap&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Timeline&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Scrub through temporal events and watch the graph evolve&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Decisions&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Browse the causal chain behind every recorded decision&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Registry&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Live audit log of every graph mutation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Entity Resolution&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Review and merge duplicates&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Ontology Hub&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;SHACL Studio, visual editor, cross-ontology alignments, SKOS browser&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Lineage&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;W3C PROV-O provenance visualization for any entity&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Quickest way to start (no Node.js required):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install &quot;semantica[explorer]&quot;
semantica-explorer --graph my_graph.json
# Dashboard opens at http://127.0.0.1:8000
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For contributor / dev-server setup: &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/explorer/README.md&quot;&gt;explorer/README.md: Local Setup Guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;What&#39;s New in v0.6.5&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Security release — upgrading is strongly recommended.&lt;/strong&gt; Fixes for 5 externally-reported vulnerabilities in the Explorer API and graph/triplet store backends, plus a CodeQL-flagged ReDoS:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Missing authentication on all Explorer API routes&lt;/strong&gt; (GHSA-j4mq-hprp-987v, Critical): every route now requires &lt;code&gt;SEMANTICA_API_KEY&lt;/code&gt;, fails closed (503) rather than open when unconfigured&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;SSRF via redirect bypass in ontology URL fetching&lt;/strong&gt; (GHSA-8c7v-62gr-hj6g, High): redirect targets are now re-validated at every hop and the connection is pinned to the validated address, closing a DNS check-then-use race&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cypher injection via unvalidated node labels and property keys&lt;/strong&gt; (GHSA-482h-hw99-h62p, Critical): Neptune, Neo4j, and FalkorDB now sanitize every label/relationship-type/property-key interpolation site&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;SPARQL injection via unvalidated triplet IRIs&lt;/strong&gt; (GHSA-8vgg-8mr4-r236, Critical): Blazegraph, RDF4J, and Jena now validate subject/predicate/object IRIs before interpolation&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Missing Origin validation on the WebSocket handshake&lt;/strong&gt; (GHSA-4643-wpgq-w329, Moderate, anonymous-mode only): &lt;code&gt;/ws/graph-updates&lt;/code&gt; now checks &lt;code&gt;Origin&lt;/code&gt; against the same allowlist &lt;code&gt;CORSMiddleware&lt;/code&gt; enforces for HTTP&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Polynomial ReDoS in SPARQL query validation&lt;/strong&gt; (CodeQL &lt;code&gt;py/polynomial-redos&lt;/code&gt;): fixed a backtracking regex in the Explorer&#39;s SPARQL route&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Also includes: embedded Oxigraph backend for &lt;code&gt;TripletStore&lt;/code&gt;, PROV-O trust/spec completeness for &lt;code&gt;ProvenanceManager&lt;/code&gt;, and the Altair Anzo triplet store backend.&lt;/p&gt; 
&lt;p&gt;→ &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/RELEASE_NOTES.md&quot;&gt;Full release notes&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/CHANGELOG.md&quot;&gt;Changelog&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Built for High-Stakes Domains&lt;/h2&gt; 
&lt;p&gt;Semantica is designed for environments where AI outputs must be explainable, auditable, and defensible, and where the data itself can&#39;t leave your infrastructure. Self-hostable with zero vendor lock-in, it&#39;s built as much for organizations handling confidential or classified data as for regulated industries chasing an audit trail:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Finance:&lt;/strong&gt; Loan underwriting audit trails, fraud detection, AML compliance, regulatory risk knowledge graphs&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Healthcare:&lt;/strong&gt; Clinical decision support, drug interaction graphs, and patient safety audit trails&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Legal:&lt;/strong&gt; Evidence-backed research, contract analysis, case law reasoning, and privilege tracking&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Government &amp;amp; Defense:&lt;/strong&gt; Policy decision records, classified information governance, and regulatory reporting, fully self-hosted with no data leaving your perimeter&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Law Enforcement:&lt;/strong&gt; Case linkage, evidence provenance chains, and investigative knowledge graphs that hold up under legal scrutiny&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cybersecurity:&lt;/strong&gt; Threat attribution, incident response timelines, and IOC provenance tracking&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Autonomous Systems:&lt;/strong&gt; Decision logs, safety validation, and explainable AI for certification&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install semantica           # core
pip install semantica[all]      # everything
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install semantica[agno]                 # Agno multi-agent integration
pip install semantica[llm-litellm]          # OpenAI, Anthropic, Gemini, Mistral, Llama, Groq, Cohere, Bedrock, Ollama, DeepSeek, and more
pip install semantica[graph-neo4j]          # Neo4j graph store (LPG)
pip install semantica[graph-falkordb]       # FalkorDB graph store (LPG)
pip install semantica[graph-apache-age]     # Apache AGE graph store (LPG)
pip install semantica[graph-amazon-neptune] # AWS Neptune graph store (LPG)
pip install semantica[tripletstore-oxigraph] # Embedded in-memory/on-disk RDF store
# RDF triple stores (Blazegraph, Apache Jena, Eclipse RDF4J) need no extra:
# semantica.triplet_store talks SPARQL over HTTP using the core `requests` dependency
pip install semantica[vectorstore-qdrant]   # Qdrant vector store
pip install semantica[vectorstore-pinecone] # Pinecone vector store
pip install semantica[db-snowflake]         # Snowflake
pip install semantica[db-databricks]        # Databricks (SDK + SQL connector)
pip install semantica[ingest-parquet]       # Parquet / PyArrow
pip install semantica[ingest-arrow]        # Apache Arrow, Feather, IPC
pip install semantica[viz]                  # HTML interactive visualization
pip install semantica[watch]                # Directory file watcher
pip install semantica[explorer]             # Knowledge Explorer dashboard
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For production deployments, use Docker or Kubernetes rather than a local &lt;code&gt;pip install&lt;/code&gt;. Set &lt;code&gt;SEMANTICA_SECRET_KEY&lt;/code&gt;, configure a persistent LPG graph store (Neo4j / FalkorDB / Apache AGE / AWS Neptune) and/or RDF triple store (Blazegraph / Apache Jena / Eclipse RDF4J), and point the vector store at a hosted backend (Qdrant / Pinecone). See &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/ARCHITECTURE.md&quot;&gt;ARCHITECTURE.md&lt;/a&gt; for the full deployment topology.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# From source
git clone https://github.com/semantica-agi/semantica.git
cd semantica &amp;amp;&amp;amp; pip install -e &quot;.[dev]&quot; &amp;amp;&amp;amp; pytest tests/
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Enterprise&lt;/h2&gt; 
&lt;p&gt;On-premises deployment · Private cloud · Custom domain implementations · SLA-backed support · Professional services for regulated industries (finance, healthcare, legal, government).&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://getsemantica.ai/&quot;&gt;getsemantica.ai&lt;/a&gt;&lt;/strong&gt; for enterprise solutions and pricing.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Community &amp;amp; Support&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Discord&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://discord.gg/sV34vps5hH&quot;&gt;discord.gg/sV34vps5hH&lt;/a&gt;: real-time help, showcases, and announcements&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GitHub Discussions&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica/discussions&quot;&gt;Q&amp;amp;A and feature requests&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GitHub Issues&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica/issues&quot;&gt;Bug reports&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://docs.getsemantica.ai/&quot;&gt;docs.getsemantica.ai&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Cookbook&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica/tree/main/cookbook&quot;&gt;Runnable Jupyter notebooks&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Changelog&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/CHANGELOG.md&quot;&gt;CHANGELOG.md&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/RELEASE_NOTES.md&quot;&gt;Release Notes&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/?repos=semantica-agi%2Fsemantica&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://api.star-history.com/chart?repos=semantica-agi/semantica&amp;amp;type=date&amp;amp;theme=dark&amp;amp;legend=top-left&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://api.star-history.com/chart?repos=semantica-agi/semantica&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://api.star-history.com/chart?repos=semantica-agi/semantica&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributors&lt;/h2&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica/graphs/contributors&quot;&gt;&lt;img src=&quot;https://contrib.rocks/image?repo=semantica-agi/semantica&amp;amp;max=500&quot; alt=&quot;Contributors&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;All contributions are welcome: bug fixes, features, tests, and documentation.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Fork the repo and create a branch&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;pip install -e &quot;.[dev]&quot;&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Write tests alongside your changes (&lt;code&gt;pytest tests/&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Open a PR and tag &lt;code&gt;@KaifAhmad1&lt;/code&gt; for review&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/semantica-agi/semantica/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for full guidelines.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;MIT License · Built by &lt;a href=&quot;https://github.com/semantica-agi&quot;&gt;Semantica&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica&quot;&gt;GitHub&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://discord.gg/sV34vps5hH&quot;&gt;Discord&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://x.com/BuildSemantica&quot;&gt;Twitter/X&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://getsemantica.ai/&quot;&gt;Website&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://docs.getsemantica.ai/&quot;&gt;Docs&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://pypi.org/project/semantica/&quot;&gt;PyPI&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;If this project helps you build better AI, a star means a lot.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/semantica-agi/semantica&quot;&gt;⭐ Star on GitHub →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=en&quot;&gt;English&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=de&quot;&gt;Deutsch&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=fr&quot;&gt;Français&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=es&quot;&gt;Español&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=it&quot;&gt;Italiano&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=pt&quot;&gt;Português&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=ar&quot;&gt;العربية&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=ur&quot;&gt;اردو&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=hi&quot;&gt;हिन्दी&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=zh&quot;&gt;中文&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=ja&quot;&gt;日本語&lt;/a&gt; · &lt;a href=&quot;https://readme-i18n.com/semantica-agi/semantica?lang=ko&quot;&gt;한국어&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt;</description>
      
    </item>
    
    <item>
      <title>zhaoxuya520/reverse-skill</title>
      <link>https://github.com/zhaoxuya520/reverse-skill</link>
      <description>&lt;p&gt;Reverse Engineering / Authorized Penetration Testing / Security Research Skill Router Pack AI-powered routing + On-demand toolchain bootstrapping + Self-evolving knowledge base Supports Claude Code, Kiro, Cursor, Cline, and other AI coding clients 逆向/渗透/安全技能路由包 - AI 自动路由 + 按需自举工具链 + 自动进化经验库 | 支持 Claude Code / Kiro / Cursor / Cline 等代码 AI 客户端&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/reverse-skill.png&quot; alt=&quot;reverse-skill&quot; width=&quot;140&quot; /&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;reverse-skill&lt;/h1&gt; 
&lt;h3 align=&quot;center&quot;&gt;Cybersecurity Skills Router · 逆向技能路由包&lt;/h3&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;em style=&quot;font-family: Georgia, serif; font-size: 1.2em; color: #777;&quot;&gt;Navigate the dark waters, sail against the stream.&lt;/em&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/release-v1.0.1-blue&quot; alt=&quot;release v1.0.1&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/zhaoxuya520/reverse-skill?style=flat&amp;amp;logo=github&quot; alt=&quot;stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/forks&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/forks/zhaoxuya520/reverse-skill?style=flat&amp;amp;logo=github&quot; alt=&quot;forks&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/issues&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/issues/zhaoxuya520/reverse-skill?style=flat&amp;amp;logo=github&quot; alt=&quot;issues&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-MIT-green&quot; alt=&quot;license&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/CHANGELOG.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/changelog-Keep%20a%20Changelog-orange&quot; alt=&quot;changelog&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://trendshift.io/repositories/43969?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-43969&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/43969&quot; alt=&quot;zhaoxuya520%2Freverse-skill | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://trendshift.io/repositories/43969?utm_source=trendshift-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-trendshift-43969&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/trendshift/repositories/43969/daily&quot; alt=&quot;zhaoxuya520%2Freverse-skill | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;br /&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#about&quot;&gt;About&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#getting-started&quot;&gt;Getting Started&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#usage&quot;&gt;Usage&lt;/a&gt; · &lt;a href=&quot;https://reverse.apivix.com/docs/&quot;&gt;Tutorial&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/MASTER-ROUTING.md&quot;&gt;Fast route&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/routing.md&quot;&gt;Routing&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/ops/&quot;&gt;Ops contracts&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/README_AI.md&quot;&gt;AI Bootstrap&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#sponsors&quot;&gt;Sponsors&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#contributing&quot;&gt;Contributing&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; 🌐 &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/README_zh.md&quot;&gt;中文&lt;/a&gt; · &lt;a href=&quot;https://reverse.apivix.com/&quot;&gt;Project website&lt;/a&gt; · &lt;a href=&quot;https://reverse.apivix.com/docs/&quot;&gt;Online tutorial&lt;/a&gt; &lt;/p&gt; 
&lt;br /&gt; 
&lt;p&gt;&lt;a id=&quot;about&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;About&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;If you are an AI Agent, jump to &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/README_AI.md&quot;&gt;README_AI.md&lt;/a&gt; and follow the instructions strictly.&lt;/strong&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;When an AI agent (Claude Code, Codex, Cursor, OpenCode, or another compatible client) encounters an APK, a binary, frontend JS encryption, a CTF challenge, or a pentesting target, this package routes it to the right methodology, checks available tools, and executes a repeatable workflow instead of guessing commands.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;User task
  → RULES.md
  → MASTER-ROUTING / master-route.ps1 (PRIMARY)
  → case-init / scope.md (auth + network_profile; no target ACT until ready)
  → Scenario skill → tools / MCP / scripts
  → timeline + Evidence→Finding→Path → report + field-journal
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Why this exists:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;AI agents don&#39;t know whether to use jadx, apktool, Frida, IDA, or BurpSuite for a given task&lt;/li&gt; 
 &lt;li&gt;APK, ELF, JS, PCAP, and CTF tasks each need different playbooks&lt;/li&gt; 
 &lt;li&gt;Tools, MCP servers, and scripts are scattered across machines&lt;/li&gt; 
 &lt;li&gt;The same mistakes get repeated because experience isn&#39;t reused&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Current status&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;Routing rules&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;Regression benchmark&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;Core skill modules&lt;/th&gt; 
   &lt;th&gt;CI platforms&lt;/th&gt; 
   &lt;th&gt;Client model&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;41 (R0–R40)&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;163 cases&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;42 tracked modules&lt;/td&gt; 
   &lt;td&gt;Windows + Ubuntu&lt;/td&gt; 
   &lt;td&gt;Client-neutral&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The routing core is driven by one structured configuration, validated by cross-platform CI, and kept separate from optional client adapters.&lt;/p&gt; 
&lt;p&gt;PRIMARY ladder: &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/MASTER-ROUTING.md&quot;&gt;skills/MASTER-ROUTING.md&lt;/a&gt; · Full matrix: &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/routing.md&quot;&gt;skills/routing.md&lt;/a&gt; · Ops: &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/ops/&quot;&gt;skills/ops/&lt;/a&gt;&lt;/p&gt; 
&lt;br /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://afterglow.watch&quot;&gt;&lt;img src=&quot;https://afterglow.watch/badge/zhaoxuya520/reverse-skill&quot; alt=&quot;star velocity&quot; /&gt;&lt;/a&gt; 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#about&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;h3&gt;Built With&lt;/h3&gt; 
&lt;p align=&quot;left&quot;&gt; &lt;img src=&quot;https://skillicons.dev/icons?i=py,nodejs,powershell,bash,java,docker,git&amp;amp;theme=light&quot; /&gt;&lt;br /&gt; &lt;code&gt;IDA Pro&lt;/code&gt; · &lt;code&gt;radare2&lt;/code&gt; · &lt;code&gt;Ghidra&lt;/code&gt; &lt;/p&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#about&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;getting-started&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Getting Started&lt;/h2&gt; 
&lt;h3&gt;Prerequisites&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Java / JDK&lt;/strong&gt; — for jadx and apktool&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Node.js 22.12+&lt;/strong&gt; — for JS toolchain and MCP servers&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Python 3.x&lt;/strong&gt; — for Frida and helper scripts&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;A code AI client&lt;/strong&gt; — Claude Code, Codex, Cursor, OpenCode, or another compatible client&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Installation&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;git clone https://github.com/zhaoxuya520/reverse-skill.git
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then refresh the tool index per platform:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Platform&lt;/th&gt; 
   &lt;th&gt;Command&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;powershell -File skills/scripts/refresh-tool-index.ps1&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux / macOS&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;bash skills/scripts/refresh-tool-index.sh&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Kali Linux&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;bash kali/scripts/refresh-tool-index.sh&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Check &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/tool-index.md&quot;&gt;skills/tool-index.md&lt;/a&gt; to see detected tools.&lt;/p&gt; 
&lt;p&gt;Platform-specific docs:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Kali Linux&lt;/strong&gt; → &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/kali/README-kali.md&quot;&gt;kali/README-kali.md&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ubuntu/Debian&lt;/strong&gt; → &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/docs/platforms/linux.md&quot;&gt;docs/platforms/linux.md&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt; → &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/docs/platforms/macos.md&quot;&gt;docs/platforms/macos.md&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#getting-started&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;usage&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;h3&gt;Supported scenarios&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Scenario&lt;/th&gt; 
   &lt;th&gt;Entry&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;APK / Android analysis&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/apk-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;iOS / mobile&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/mobile-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Binary reverse (exe/dll/so/elf)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/ida-reverse/&lt;/code&gt; / &lt;code&gt;skills/radare2/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;.NET / C#&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/dotnet-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Frontend JS / encrypted params&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/js-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;DSL VM / custom JS opcode VM&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/reverse-engineering/dsl-vm-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;HTTP capture / request replay&lt;/td&gt; 
   &lt;td&gt;anything-analyzer, Reqable MCP + &lt;code&gt;js-reverse/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Malware / YARA&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/malware-analysis/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Penetration testing / scanning&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/pentest-tools/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Attack chain / red-team orchestration&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/attack-chain/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Case evidence review / report handoff&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/case-review/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CTF competition&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;CTF-Sandbox-Orchestrator/&lt;/code&gt; (42 sub-skills)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Firmware / IoT&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/firmware-pentest/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Patch diff / N-day&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/patch-diff-exploit/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Pwn / exploit development&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/pwn-chain/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;EDR bypass&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/edr-bypass-re/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;API / GraphQL&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/api-security/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Supply chain / SBOM&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/supply-chain-security/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LLM / AI security&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/llm-security/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;OLLVM deobfuscation&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/reverse-engineering/references/ollvm-deobfuscation.md&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Diagrams / reports&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;skills/diagram-generator/&lt;/code&gt; / &lt;code&gt;skills/docs-generator/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Key files&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;File&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/README_AI.md&quot;&gt;README_AI.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;AI agent bootstrap and configuration&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/RULES.md&quot;&gt;RULES.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Global routing rules (scope gate before ACT)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/MASTER-ROUTING.md&quot;&gt;skills/MASTER-ROUTING.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;PRIMARY fast ladder&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/routing.md&quot;&gt;skills/routing.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Task → skill routing matrix&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/SKILL.md&quot;&gt;skills/SKILL.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Master entry point&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/INDEX.md&quot;&gt;skills/INDEX.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Auto-generated, client-neutral skill navigation index&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/config/routing.json&quot;&gt;skills/config/routing.json&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Routing single source of truth&lt;/strong&gt; (41 rules, R0–R40)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/tool-index.md&quot;&gt;skills/tool-index.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Local tool status (auto-generated)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/scripts/master-route.ps1&quot;&gt;skills/scripts/master-route.ps1&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;One-shot PRIMARY triage (reads routing.json)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/scripts/case-init.ps1&quot;&gt;skills/scripts/case-init.ps1&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Case dir: scope / timeline / workitems&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/case-review/&quot;&gt;skills/case-review/&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Read-only Evidence graph review and artifact fixity checks&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/scripts/test-routing.ps1&quot;&gt;skills/scripts/test-routing.ps1&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Routing regression runner (163 benchmark cases)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/scripts/verify-routing-coherence.ps1&quot;&gt;skills/scripts/verify-routing-coherence.ps1&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Structure + supply-chain pin gate checks&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/scripts/extract-summaries.ps1&quot;&gt;skills/scripts/extract-summaries.ps1&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Regenerates &lt;a href=&quot;http://INDEX.md&quot;&gt;INDEX.md&lt;/a&gt; from skill frontmatter&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/AGENTS.md&quot;&gt;AGENTS.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Platform-neutral repository instructions&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/ops/&quot;&gt;skills/ops/&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Scope, Evidence chain, roles, timeline (skill-router form)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Testing (run after any routing/config change)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# 1. Routing regression — 163 (hint → expected PRIMARY) cases, fails CI on any mismatch
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/test-routing.ps1
# 2. Structure coherence + supply-chain pin gate (unpinned auto-install fails)
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/verify-routing-coherence.ps1
# 3. Smoke: verify + script parse + quick route matrix
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/smoke.ps1
# 4. INDEX.md drift check (regenerate with extract-summaries.ps1 if dirty)
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/extract-summaries.ps1 -Check
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;GitHub Actions CI runs all of the above on &lt;strong&gt;Windows + Ubuntu&lt;/strong&gt; for every push/PR.&lt;/p&gt; 
&lt;h3&gt;Client-neutral integration&lt;/h3&gt; 
&lt;p&gt;The routing core, regression suite, manifests, and case workflow do not depend on a specific AI client. Claude Code, Codex, Cursor, OpenCode, and other clients should load the repository through their own adapter or project-instruction mechanism. Client-specific configuration must remain optional and outside the core routing contract.&lt;/p&gt; 
&lt;h3&gt;Repository layout&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;.
├── README.md / README_zh.md / README_AI.md
├── RULES.md / RULES_zh.md
├── skills/
│   ├── MASTER-ROUTING.md / SKILL.md / routing.md
│   ├── ops/                   # ops contracts
│   ├── scripts/               # master-route, case-init, bootstrap, verify
│   ├── field-journal/
│   ├── apk-reverse/ mobile-reverse/ js-reverse/ dotnet-reverse/
│   ├── ida-reverse/ radare2/ reverse-engineering/ malware-analysis/
│   ├── pentest-tools/ attack-chain/ pwn-chain/ firmware-pentest/
│   ├── api-security/ supply-chain-security/ llm-security/
│   └── ...
├── CTF-Sandbox-Orchestrator/
├── docs/
├── kali/                      # see kali/README-kali.md
└── work/                      # local cases (gitignored)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#usage&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;sponsors&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Sponsors&lt;/h2&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td align=&quot;center&quot; width=&quot;220&quot;&gt; &lt;a href=&quot;https://www.atlascloud.ai/?ref=W3Q77C&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/docs/assets/sponsors/atlas-cloud.svg?sanitize=true&quot; alt=&quot;Atlas Cloud&quot; width=&quot;190&quot; /&gt; &lt;/a&gt; &lt;br /&gt; &lt;a href=&quot;https://www.atlascloud.ai/oss-program&quot;&gt; &lt;img src=&quot;https://www.atlascloud.ai/oss-program/powered-by-atlas-cloud.svg?sanitize=true&quot; alt=&quot;Powered by Atlas Cloud&quot; height=&quot;24&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;td&gt; &lt;strong&gt;&lt;a href=&quot;https://www.atlascloud.ai/?ref=W3Q77C&quot;&gt;Atlas Cloud&lt;/a&gt;&lt;/strong&gt; is a full-modal AI inference platform that provides unified API access to 400+ curated image, video, audio, 3D, and language models. Atlas Cloud supports reverse-skill with model services for cross-platform routing verification, documentation, and open security workflows. &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td align=&quot;center&quot; width=&quot;220&quot;&gt; &lt;a href=&quot;https://gokite.ai/&quot;&gt; &lt;img src=&quot;https://gokite.ai/images/Kite_Logo.svg?sanitize=true&quot; alt=&quot;Kite AI&quot; width=&quot;150&quot; /&gt; &lt;/a&gt; &lt;/td&gt; 
   &lt;td&gt; &lt;strong&gt;&lt;a href=&quot;https://gokite.ai/&quot;&gt;Kite AI&lt;/a&gt;&lt;/strong&gt; builds identity and payment infrastructure for the agent economy. Its support helps sustain reverse-skill&#39;s open-source maintenance, routing benchmarks, and platform-neutral security workflows. &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#sponsors&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;contributing&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Contributions are welcome! Fork the repo, create a feature branch, and open a PR.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Fork the Project&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;git checkout -b feature/AmazingFeature&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;git commit -m &#39;Add some AmazingFeature&#39;&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;git push origin feature/AmazingFeature&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Open a Pull Request&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Contributors&lt;/h3&gt; 
&lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=zhaoxuya520/reverse-skill&quot; alt=&quot;contributors&quot; /&gt; &lt;/a&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#contributing&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;license&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;This project (&lt;code&gt;reverse-skill&lt;/code&gt;) is primarily licensed under the &lt;strong&gt;MIT License&lt;/strong&gt; (see &lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt;).&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Submodule and third-party dependencies:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;CTF-Sandbox-Orchestrator/&lt;/strong&gt;: &lt;strong&gt;GNU GPLv3&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Pentest Swarm AI&lt;/strong&gt;: Original project is &lt;strong&gt;AGPL-3.0&lt;/strong&gt;. This repo only invokes it via CLI or MCP and does not include its source code&lt;/li&gt; 
 &lt;li&gt;Other tools (jadx, frida, nmap, burpsuite-mcp, etc.) are subject to their respective official licenses&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#license&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;acknowledgments&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Acknowledgments&lt;/h2&gt; 
&lt;p&gt;Thanks to all open-source tool authors. This project integrates tools across reverse engineering, penetration testing, CTF, and security analysis — every tool is the fruit of community effort.&lt;/p&gt; 
&lt;p&gt;Special thanks to the OLLVM deobfuscation ecosystem contributors and everyone who submitted test samples, issues, and PRs.&lt;/p&gt; 
&lt;p align=&quot;right&quot;&gt;(&lt;a href=&quot;https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/#acknowledgments&quot;&gt;back to top&lt;/a&gt;)&lt;/p&gt; 
&lt;h2&gt;Contact&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href=&quot;mailto:ww7517437@gmail.com&quot;&gt;ww7517437@gmail.com&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;QQ Group:&lt;/strong&gt; 942400892&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Discord:&lt;/strong&gt; &lt;a href=&quot;https://discord.gg/TECd3bMRR&quot;&gt;reverse-skill community&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Issues:&lt;/strong&gt; &lt;a href=&quot;https://github.com/zhaoxuya520/reverse-skill/issues&quot;&gt;GitHub Issues&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>esengine/DeepSeek-Reasonix</title>
      <link>https://github.com/esengine/DeepSeek-Reasonix</link>
      <description>&lt;p&gt;DeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/logo-ghost-wave-effect.svg?sanitize=true&quot; alt=&quot;Reasonix&quot; width=&quot;360&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;English&lt;/strong&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/README.zh-CN.md&quot;&gt;简体中文&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/GUIDE.md&quot;&gt;Guide&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/ACP.md&quot;&gt;ACP&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/EXTENSIONS.md&quot;&gt;Extensions&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/SPEC.md&quot;&gt;Spec&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://esengine.github.io/DeepSeek-Reasonix/&quot;&gt;Website&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;strong&gt;&lt;a href=&quot;https://discord.gg/XF78rEME2D&quot;&gt;Discord&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.npmjs.com/package/reasonix&quot;&gt;&lt;img src=&quot;https://img.shields.io/npm/v/reasonix.svg?style=flat-square&amp;amp;color=cb3837&amp;amp;labelColor=161b22&amp;amp;logo=npm&amp;amp;logoColor=white&quot; alt=&quot;npm version&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/actions/workflows/ci.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/esengine/DeepSeek-Reasonix/ci.yml?style=flat-square&amp;amp;label=ci&amp;amp;labelColor=161b22&amp;amp;logo=githubactions&amp;amp;logoColor=white&quot; alt=&quot;CI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/npm/l/reasonix.svg?style=flat-square&amp;amp;color=8b949e&amp;amp;labelColor=161b22&quot; alt=&quot;license&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.npmjs.com/package/reasonix&quot;&gt;&lt;img src=&quot;https://img.shields.io/npm/dm/reasonix.svg?style=flat-square&amp;amp;color=3fb950&amp;amp;labelColor=161b22&amp;amp;label=downloads&quot; alt=&quot;downloads&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/esengine/DeepSeek-Reasonix.svg?style=flat-square&amp;amp;color=dbab09&amp;amp;labelColor=161b22&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;GitHub stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://atomgit.com/esengine/DeepSeek-Reasonix&quot;&gt;&lt;img src=&quot;https://atomgit.com/esengine/DeepSeek-Reasonix/star/badge.svg?sanitize=true&quot; alt=&quot;AtomGit stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/graphs/contributors&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/contributors/esengine/DeepSeek-Reasonix.svg?style=flat-square&amp;amp;color=bc8cff&amp;amp;labelColor=161b22&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;contributors&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/discussions&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/discussions/esengine/DeepSeek-Reasonix.svg?style=flat-square&amp;amp;color=58a6ff&amp;amp;labelColor=161b22&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;Discussions&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/XF78rEME2D&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/discord-join-5865F2.svg?style=flat-square&amp;amp;labelColor=161b22&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://trendshift.io/repositories/27020?utm_source=trendshift-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-trendshift-27020&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/trendshift/repositories/27020/monthly?language=Go&quot; alt=&quot;esengine/DeepSeek-Reasonix | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://trendshift.io/repositories/27020?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-27020&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/27020&quot; alt=&quot;esengine/DeepSeek-Reasonix | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;br /&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;strong&gt;Open source · MIT · a single Go binary&lt;/strong&gt;&lt;/p&gt; 
&lt;h3 align=&quot;center&quot;&gt;A coding agent you can leave running.&lt;/h3&gt; 
&lt;p align=&quot;center&quot;&gt;One local engine, four ways in — terminal, desktop app, browser, or your editor over ACP. Plan mode, permissions, a workspace sandbox and per-turn checkpoints keep a long autonomous run something you can still read and undo.&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/ab2f3878-e224-4931-8254-060e7695cfb9&quot; controls preload=&quot;metadata&quot; width=&quot;560&quot;&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Community · 加入社区&lt;/strong&gt; — bilingual Discord for setup help (&lt;code&gt;#help&lt;/code&gt; / &lt;code&gt;#求助&lt;/code&gt;), workflow showcases, and feature ideas. → &lt;strong&gt;&lt;a href=&quot;https://discord.gg/XF78rEME2D&quot;&gt;https://discord.gg/XF78rEME2D&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Config-driven.&lt;/strong&gt; Providers, the agent, enabled tools, and plugins are all declared in &lt;code&gt;reasonix.toml&lt;/code&gt;. No hardcoded models.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-model &amp;amp; composable.&lt;/strong&gt; DeepSeek ships as a preset; any OpenAI-compatible endpoint is a config entry, not new code. Optionally run two models together (executor + planner) in separate, cache-stable sessions.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Plugin-driven.&lt;/strong&gt; MCP servers contribute tools, prompts, and resources; Extension Protocol v1 sidecars can also intercept runtime events, contribute Providers and structured UI, and ship versioned plugin packages.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Cache-aware context maintenance.&lt;/strong&gt; Startup injects a small stable environment summary, stale tool output is snipped/pruned before summary compaction, and the built-in tool schema contract is documented for regression review.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Zero-friction distribution.&lt;/strong&gt; &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; single binary; cross-compile to six targets with one command. The result is a fully self-contained static binary — nothing to install on the target machine beyond the binary itself.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Install&lt;/h2&gt; 
&lt;p&gt;Choose the path that matches how you want to use Reasonix. The CLI/TUI, desktop app, and VS Code extension all use the same local Reasonix engine.&lt;/p&gt; 
&lt;h3&gt;Path A: CLI / TUI&lt;/h3&gt; 
&lt;p&gt;Install the native binary through npm on any supported platform, or use Homebrew on macOS:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;npm i -g reasonix                  # any OS; pulls the prebuilt native binary
brew install esengine/reasonix/reasonix   # macOS
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Prebuilt archives (&lt;code&gt;darwin|linux|windows × amd64|arm64&lt;/code&gt;) and &lt;code&gt;SHA256SUMS&lt;/code&gt; are on every &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/releases&quot;&gt;GitHub release&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Path B: Desktop app&lt;/h3&gt; 
&lt;p&gt;Use the &lt;a href=&quot;https://reasonix.io/?download=desktop#start&quot;&gt;official download page&lt;/a&gt; for the latest desktop build.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Platform&lt;/th&gt; 
   &lt;th&gt;Package&lt;/th&gt; 
   &lt;th&gt;Architecture&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;macOS&lt;/td&gt; 
   &lt;td&gt;Universal &lt;code&gt;.dmg&lt;/code&gt; or &lt;code&gt;.zip&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Apple Silicon / Intel&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows&lt;/td&gt; 
   &lt;td&gt;Installer &lt;code&gt;.exe&lt;/code&gt; or portable &lt;code&gt;.zip&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;x64 / ARM64&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;.deb&lt;/code&gt; or &lt;code&gt;.tar.gz&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;x64&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Windows installers are code-signed through &lt;a href=&quot;https://signpath.io/&quot;&gt;SignPath.io&lt;/a&gt; with a free certificate provided by the &lt;a href=&quot;https://signpath.org/&quot;&gt;SignPath Foundation&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Path C: VS Code extension&lt;/h3&gt; 
&lt;p&gt;Complete Path A first. The extension does not bundle the CLI; it starts your local &lt;code&gt;reasonix acp&lt;/code&gt; backend and adds native chat, editor context, tool-call approvals, model selection, and workspace sessions.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;VS Code:&lt;/strong&gt; &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=SivanLiu.reasonix-agent&quot;&gt;install from Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;VSCodium / Eclipse Theia:&lt;/strong&gt; &lt;a href=&quot;https://open-vsx.org/extension/SivanLiu/reasonix-agent&quot;&gt;install from Open VSX Registry&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extension ID:&lt;/strong&gt; &lt;code&gt;SivanLiu.reasonix-agent&lt;/code&gt; · &lt;a href=&quot;https://github.com/SivanCola/reasonix-vscode&quot;&gt;source and usage guide&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Path D: Build from source&lt;/h3&gt; 
&lt;p&gt;Clone the repository first:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;git clone https://github.com/esengine/DeepSeek-Reasonix.git
cd DeepSeek-Reasonix
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;CLI&lt;/h4&gt; 
&lt;p&gt;The CLI build requires &lt;strong&gt;Go 1.25+&lt;/strong&gt;. The module pins a &lt;code&gt;toolchain&lt;/code&gt; directive; keep &lt;code&gt;GOTOOLCHAIN=auto&lt;/code&gt; so Go downloads the pinned toolchain, or install it.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;make build      # -&amp;gt; bin/reasonix(.exe)
make cross      # -&amp;gt; dist/ (darwin|linux|windows × amd64|arm64)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Desktop&lt;/h4&gt; 
&lt;p&gt;The desktop build additionally requires:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Node 24+ and pnpm 10&lt;/strong&gt; (&lt;code&gt;npm install -g pnpm@10&lt;/code&gt;) for the frontend&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Wails CLI&lt;/strong&gt; matching the shared &lt;code&gt;.wails-version&lt;/code&gt; pin&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;make wails-install
cd desktop
wails build
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/desktop/README.md#prerequisites&quot;&gt;desktop build guide&lt;/a&gt; for platform webview dependencies and Linux build tags.&lt;/p&gt; 
&lt;h2&gt;Quick start&lt;/h2&gt; 
&lt;h3&gt;CLI / TUI&lt;/h3&gt; 
&lt;p&gt;These commands are for the CLI/TUI installed through Path A:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;reasonix setup                      # configure a provider and model
reasonix                            # start an interactive session
reasonix run &quot;implement the TODOs in main.go&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;In an interactive session, run &lt;code&gt;/init&lt;/code&gt; when you want Reasonix to create project instructions.&lt;/p&gt; 
&lt;h3&gt;Desktop app&lt;/h3&gt; 
&lt;p&gt;Download the installer for your platform from the &lt;a href=&quot;https://reasonix.io/?download=desktop#start&quot;&gt;official download page&lt;/a&gt;, install and launch Reasonix, then configure a provider and model in the app. The CLI commands above are not required for the desktop app.&lt;/p&gt; 
&lt;p&gt;For advanced CLI usage and configuration, see the &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CLI.md&quot;&gt;CLI reference&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/GUIDE.md&quot;&gt;Guide&lt;/a&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CONFIG_PATHS.md&quot;&gt;configuration paths&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Getting started:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/GUIDE.md&quot;&gt;Guide&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CLI.md&quot;&gt;CLI reference&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CONFIG_PATHS.md&quot;&gt;Configuration paths&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/ACP.md&quot;&gt;ACP editor integration&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Features &amp;amp; troubleshooting:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/SUBAGENT_PROFILES.md&quot;&gt;Subagent profiles&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/SESSION_MEMORY_RETRIEVAL.md&quot;&gt;Context Engine v2&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CAPABILITY_DIAGNOSTICS.md&quot;&gt;Capability diagnostics&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/RECOVERY.md&quot;&gt;Recovery and updates&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/BOT_GUIDE.md&quot;&gt;Bot guide&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/CHECKPOINTS.md&quot;&gt;Checkpoints &amp;amp; rewind&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Engineering &amp;amp; migration:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/SPEC.md&quot;&gt;Spec&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/TASK_CONTRACT.md&quot;&gt;Task contracts &amp;amp; pause policy&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/TOOL_CONTRACT.md&quot;&gt;Tool contract&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/MIGRATING.md&quot;&gt;Migrating from 0.x&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extension development:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/EXTENSIONS.md&quot;&gt;Extensions&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/PLUGIN_PACKAGES.md&quot;&gt;Plugin packages and Manifest v1&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/docs/EXTENSION_PROTOCOL.md&quot;&gt;Extension Protocol&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/sdk/go/README.md&quot;&gt;Go SDK and starter&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/?repos=esengine%2FDeepSeek-Reasonix&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/star-history/assets/star-history/star-history-dark.svg&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/star-history/assets/star-history/star-history-light.svg&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/star-history/assets/star-history/star-history-light.svg?sanitize=true&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;br /&gt; 
&lt;h2&gt;Acknowledgments&lt;/h2&gt; 
&lt;p&gt;A small list of folks whose work has shaped Reasonix the most — the current top 20 contributors by commit count. The full contributor graph is on &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/graphs/contributors?all=1&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt; 
&lt;!-- reasonix-top-contributors:start --&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Contributor&lt;/th&gt; 
   &lt;th&gt;Contributor&lt;/th&gt; 
   &lt;th&gt;Contributor&lt;/th&gt; 
   &lt;th&gt;Contributor&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SivanCola&quot;&gt;&lt;strong&gt;SivanCola&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/esengine&quot;&gt;&lt;strong&gt;esengine&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/ttmouse&quot;&gt;&lt;strong&gt;ttmouse&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/lifu963&quot;&gt;&lt;strong&gt;lifu963&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;reasonix&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/HUQIANTAO&quot;&gt;&lt;strong&gt;HUQIANTAO&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/GTC2080&quot;&gt;&lt;strong&gt;GTC2080&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/light-front-theory&quot;&gt;&lt;strong&gt;light-front-theory&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;merge-order-check&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Li-Charles-One&quot;&gt;&lt;strong&gt;Li-Charles-One&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/eghrhegpe&quot;&gt;&lt;strong&gt;eghrhegpe&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;wufengfan&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/CVEngineer66&quot;&gt;&lt;strong&gt;CVEngineer66&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/apps/dependabot&quot;&gt;&lt;strong&gt;dependabot[bot]&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/lanshi17&quot;&gt;&lt;strong&gt;lanshi17&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/SuMuxi66&quot;&gt;&lt;strong&gt;SuMuxi66&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/CnsMaple&quot;&gt;&lt;strong&gt;CnsMaple&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/cyq1017&quot;&gt;&lt;strong&gt;cyq1017&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/JesonChou&quot;&gt;&lt;strong&gt;JesonChou&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/XTLine&quot;&gt;&lt;strong&gt;XTLine&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;!-- reasonix-top-contributors:end --&gt; 
&lt;p&gt;Special thanks to &lt;a href=&quot;https://github.com/Bernardxu123&quot;&gt;&lt;strong&gt;Bernardxu123&lt;/strong&gt;&lt;/a&gt; for designing the project logo and intro video.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=esengine/DeepSeek-Reasonix&amp;amp;max=100&amp;amp;columns=12&quot; alt=&quot;Contributors to esengine/DeepSeek-Reasonix&quot; width=&quot;860&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;br /&gt; 
&lt;hr /&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;MIT — see &lt;a href=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/LICENSE&quot;&gt;LICENSE&lt;/a&gt;&lt;/sub&gt; &lt;br /&gt; &lt;sub&gt;Built by the community at &lt;a href=&quot;https://github.com/esengine/DeepSeek-Reasonix/graphs/contributors&quot;&gt;esengine/DeepSeek-Reasonix&lt;/a&gt;&lt;/sub&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;sub&gt;&lt;strong&gt;Support this project&lt;/strong&gt;&lt;/sub&gt;&lt;/p&gt; 
&lt;p&gt;If Reasonix has been useful and you&#39;d like to say thanks, you can. It stays a coffee, not a contract — donations don&#39;t buy feature priority or change how issues get triaged.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;International&lt;/strong&gt; — PayPal: &lt;a href=&quot;https://paypal.me/yuhuahui&quot;&gt;paypal.me/yuhuahui&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;国内&lt;/strong&gt; — 微信支付（扫码）&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/esengine/DeepSeek-Reasonix/main-v2/.github/sponsor/wechat-pay.jpg&quot; alt=&quot;WeChat Pay QR code&quot; width=&quot;180&quot; /&gt; &lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>google/skills</title>
      <link>https://github.com/google/skills</link>
      <description>&lt;p&gt;Agent Skills for Google products and technologies&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Agent Skills&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://skills.sh/google/skills&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/skills.sh-install-green&quot; alt=&quot;Install via skills.sh&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;This repository contains &lt;a href=&quot;https://agentskills.io/home&quot;&gt;Agent Skills&lt;/a&gt; for Google products and technologies, including &lt;a href=&quot;https://cloud.google.com&quot;&gt;Google Cloud&lt;/a&gt;.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;This repository is under active development.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx skills add google/skills
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;From the &lt;code&gt;npx install&lt;/code&gt; command, you can select the specific skills from this repo to install.&lt;/p&gt; 
&lt;h2&gt;Available Skills&lt;/h2&gt; 
&lt;!-- BEGIN SKILLS --&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Getting started with Google Cloud&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-recipe-auth&quot;&gt;&lt;strong&gt;Authenticating to Google Cloud&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-recipe-foundation-builder&quot;&gt;&lt;strong&gt;Google Cloud Recipe: Foundation Builder&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-recipe-onboarding&quot;&gt;&lt;strong&gt;Onboarding to Google Cloud&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-product solution skills&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-architecture&quot;&gt;&lt;strong&gt;Google Cloud solution-architecture workflow&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-agentic-analytics-spark-knowledge-catalog&quot;&gt;&lt;strong&gt;Agentic analytics across cloud providers and data types&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-agentic-ai-borderless-data-lakehouse&quot;&gt;&lt;strong&gt;Borderless open data lakehouse agentic AI system&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-build-deploy-agents&quot;&gt;&lt;strong&gt;Build and deploy AI agents on Google Cloud&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-agentic-ai-data-science-workflow&quot;&gt;&lt;strong&gt;Data science workflow with AI agents solution&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-agentic-ai-bidirectional-streaming&quot;&gt;&lt;strong&gt;Live bidirectional multimodal streaming agentic AI solution&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-guided-gke-ai-migration&quot;&gt;&lt;strong&gt;Migrate AI Workloads to GKE Inference&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-rag-enterprise-search-gke-sqldb&quot;&gt;&lt;strong&gt;RAG for enterprise search using GKE and AlloyDB&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-solution-n-tier-serverless-web-app&quot;&gt;&lt;strong&gt;Secure n-tier serverless web application with strict private application tiers&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;AI/ML&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-alert-configuration&quot;&gt;&lt;strong&gt;Agent Platform Alert Configuration&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-endpoint-management&quot;&gt;&lt;strong&gt;Agent Platform Endpoint Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-eval-flywheel&quot;&gt;&lt;strong&gt;Agent Platform Eval Flywheel Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-inference&quot;&gt;&lt;strong&gt;Agent Platform GenAI Inference Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-deploy&quot;&gt;&lt;strong&gt;Agent Platform Model Garden Deploy Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-model-registry&quot;&gt;&lt;strong&gt;Agent Platform Model Registry Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-tuning&quot;&gt;&lt;strong&gt;Agent Platform Model Tuning&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-prompt-management&quot;&gt;&lt;strong&gt;Agent Platform Prompt Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-rag-engine-management&quot;&gt;&lt;strong&gt;Agent Platform RAG Engine Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-troubleshooting&quot;&gt;&lt;strong&gt;Agent Platform Troubleshooting&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-tuning-management&quot;&gt;&lt;strong&gt;Agent Platform Tuning Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/bigquery-ai-ml&quot;&gt;&lt;strong&gt;BigQuery AI &amp;amp; ML&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gemini-api&quot;&gt;&lt;strong&gt;Gemini API in Agent Platform&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gemini-agents-api&quot;&gt;&lt;strong&gt;Gemini Enterprise Agent Platform - Managed Agents API Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gemini-interactions-api&quot;&gt;&lt;strong&gt;Gemini Interactions API Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gemini-live-api&quot;&gt;&lt;strong&gt;LiveAPI Service Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-migrate-from-ai-studio&quot;&gt;&lt;strong&gt;Migrating from Gemini API in AI Studio to Agent Platform&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/agent-platform-skill-registry&quot;&gt;&lt;strong&gt;Skill Registry&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/design-deploy&quot;&gt;&lt;strong&gt;Custom Infrastructure Design and Deployment Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/design-deploy/references/infra-deployment-debugging&quot;&gt;&lt;strong&gt;Deployment Troubleshooting Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-inference&quot;&gt;&lt;strong&gt;GKE AI/ML Inference&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-app-onboarding&quot;&gt;&lt;strong&gt;GKE App Onboarding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-backup-dr&quot;&gt;&lt;strong&gt;GKE Backup &amp;amp; Disaster Recovery&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-basics&quot;&gt;&lt;strong&gt;GKE Basics &amp;amp; Critical Gotchas&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-batch-hpc&quot;&gt;&lt;strong&gt;GKE Batch &amp;amp; HPC Workloads&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-cluster-autoscaler&quot;&gt;&lt;strong&gt;GKE Cluster Autoscaler&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-cluster-creation&quot;&gt;&lt;strong&gt;GKE Cluster Creation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-compute-classes&quot;&gt;&lt;strong&gt;GKE ComputeClasses&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-golden-path&quot;&gt;&lt;strong&gt;GKE Golden Path Configuration&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-ai-troubleshooting-jobset-interruption&quot;&gt;&lt;strong&gt;GKE JobSet Interruption Troubleshooting&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-manifest-generation&quot;&gt;&lt;strong&gt;GKE Manifest Generation Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-multitenancy&quot;&gt;&lt;strong&gt;GKE Multi-Tenancy&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-networking&quot;&gt;&lt;strong&gt;GKE Networking&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-productionize&quot;&gt;&lt;strong&gt;GKE Productionize Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-reliability&quot;&gt;&lt;strong&gt;GKE Reliability&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-service-networking&quot;&gt;&lt;strong&gt;GKE Service Networking Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-storage&quot;&gt;&lt;strong&gt;GKE Storage&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-tpu-dynamic-slices-monitoring&quot;&gt;&lt;strong&gt;GKE TPU Dynamic Slices Monitoring &amp;amp; Management&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-upgrades&quot;&gt;&lt;strong&gt;GKE Upgrades &amp;amp; Maintenance&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-workload-scaling&quot;&gt;&lt;strong&gt;GKE Workload Scaling&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-workload-troubleshooting&quot;&gt;&lt;strong&gt;GKE Workload Troubleshooting Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-filestore-autoscale&quot;&gt;&lt;strong&gt;Google Cloud Filestore Autoscale&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-global-frontend-configuration&quot;&gt;&lt;strong&gt;Google Cloud global external Application Load Balancer Configuration Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-networking-observability&quot;&gt;&lt;strong&gt;Google Cloud Networking Observability Expert&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-storage-basics&quot;&gt;&lt;strong&gt;Google Cloud Storage Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/design-deploy/references/design&quot;&gt;&lt;strong&gt;Simplified GCP Modular Terraform Architect Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Databases and analytics&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/alloydb-basics&quot;&gt;&lt;strong&gt;AlloyDB Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/bigquery-bigframes&quot;&gt;&lt;strong&gt;BigFrames (BigQuery DataFrame) basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/datalineage-bigquery-asset-impact-analysis&quot;&gt;&lt;strong&gt;BigQuery Asset Impact Analysis&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/bigquery-basics&quot;&gt;&lt;strong&gt;BigQuery Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/bigtable-basics&quot;&gt;&lt;strong&gt;Bigtable Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-sql-basics&quot;&gt;&lt;strong&gt;Cloud SQL Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/datalineage-summary&quot;&gt;&lt;strong&gt;Data Lineage Summary&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/managed-airflow-migrations&quot;&gt;&lt;strong&gt;Managed Service for Apache Airflow (formerly Cloud Composer) Migration Guide&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/spanner-basics&quot;&gt;&lt;strong&gt;Spanner Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Developer tools&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/developer-device-platform-basics&quot;&gt;&lt;strong&gt;Developer Device Platform&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gcloud&quot;&gt;&lt;strong&gt;gcloud CLI Skill for AI Agents&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-agents-cli-onboarding&quot;&gt;&lt;strong&gt;Google Agents CLI Onboarding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Management tools&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-monitoring-chart-generation&quot;&gt;&lt;strong&gt;Cloud Monitoring Chart Generation Skill (&lt;code&gt;cloud-monitoring-chart-generation&lt;/code&gt;)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-logging-configuration-basics&quot;&gt;&lt;strong&gt;Configuring Cloud Logging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-logging-cross-project-configuration&quot;&gt;&lt;strong&gt;Configuring Cross-Project Logging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-logging-query-generation&quot;&gt;&lt;strong&gt;Generate Logging Query Language queries&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-cost-analysis&quot;&gt;&lt;strong&gt;GKE Cost Analysis&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-cost-optimization&quot;&gt;&lt;strong&gt;GKE Cost Optimization&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-observability&quot;&gt;&lt;strong&gt;GKE Observability&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-tpu-metrics-monitoring&quot;&gt;&lt;strong&gt;GKE TPU Metrics Monitoring Guide&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-ai-troubleshooting-handle-disruption-gpu-tpu&quot;&gt;&lt;strong&gt;Handle Disruption on GPUs and TPUs Troubleshooting&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-monitoring-metric-selection&quot;&gt;&lt;strong&gt;Metric Selection (Service Query &amp;amp; Local Keyword Filtering)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-slo-alert-configuration&quot;&gt;&lt;strong&gt;SLO Alert Configuration Setup Wizard&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-ai-troubleshooting-tpu-vbar-oom&quot;&gt;&lt;strong&gt;TPU Connection Failure and VBAR OOM Troubleshooting&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/workload-manager-basics&quot;&gt;&lt;strong&gt;Workload Manager Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Well-Architected Framework&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-cost-optimization&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Cost Optimization pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-operational-excellence&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Operational Excellence pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-performance-optimization&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Performance Optimization pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-reliability&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Reliability pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-security&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Security pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/google-cloud-waf-sustainability&quot;&gt;&lt;strong&gt;Google Cloud Well-Architected Framework skill for the Sustainability pillar&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Security and identity&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-platform-security&quot;&gt;&lt;strong&gt;GKE Platform Security&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/gke-workload-security&quot;&gt;&lt;strong&gt;GKE Workload Security&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/detection-engineering-coverage-evaluation&quot;&gt;&lt;strong&gt;SecOps Detection Coverage Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Web and app hosting&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/cloud-run-basics&quot;&gt;&lt;strong&gt;Cloud Run Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/cloud/firebase-basics&quot;&gt;&lt;strong&gt;Firebase Basics&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Advertising&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-mobile-ads-android-migrate-to-next-gen&quot;&gt;&lt;strong&gt;AI Migration Agent Instructions for the Google Mobile Ads SDK&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/data-manager-api-audience-ingestion&quot;&gt;&lt;strong&gt;Data Manager API Audience Ingestion&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/data-manager-api-event-ingestion&quot;&gt;&lt;strong&gt;Data Manager API Event Ingestion&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/data-manager-api-setup&quot;&gt;&lt;strong&gt;Data Manager API Setup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-ads-api-account-diagnostics&quot;&gt;&lt;strong&gt;Google Ads API Account Performance Diagnostics Skill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-ads-api-mcp-setup&quot;&gt;&lt;strong&gt;Google Ads API MCP Server Installation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-ads-api-quickstart&quot;&gt;&lt;strong&gt;Google Ads API Quickstart&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-mobile-ads-banner&quot;&gt;&lt;strong&gt;Google Mobile Ads SDK - Banner Ads&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-mobile-ads-get-started&quot;&gt;&lt;strong&gt;Google Mobile Ads SDK - Install&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-mobile-ads-interstitial&quot;&gt;&lt;strong&gt;Google Mobile Ads SDK - Interstitial Ads&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/google-mobile-ads-rewarded&quot;&gt;&lt;strong&gt;Google Mobile Ads SDK - Rewarded Ads&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/ads/ima-sdk-client-side&quot;&gt;&lt;strong&gt;IMA SDK client-side&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Others&lt;/strong&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/analytics/google-analytics-admin-api-basics&quot;&gt;&lt;strong&gt;Getting Started with Google Analytics Admin API&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/google/skills/main/skills/analytics/google-analytics-data-api-basics&quot;&gt;&lt;strong&gt;Getting Started with Google Analytics Data API&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;!-- END SKILLS --&gt; 
&lt;h2&gt;Additional Google skills&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/gemini-cli-extensions/google-cloud-storage&quot;&gt;&lt;strong&gt;Advanced Google Cloud Storage Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/google/agents-cli&quot;&gt;&lt;strong&gt;Agent Development Kit (ADK) Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/android/skills&quot;&gt;&lt;strong&gt;Android Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/dart-lang/skills&quot;&gt;&lt;strong&gt;Dart Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/firebase/agent-skills/tree/main/skills/firebase-firestore&quot;&gt;&lt;strong&gt;Firestore Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/flutter/skills&quot;&gt;&lt;strong&gt;Flutter Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/genkit-ai/skills&quot;&gt;&lt;strong&gt;Genkit Skills&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Plugins&lt;/h2&gt; 
&lt;p&gt;This repo also bundles Google product plugins (Skills + MCP servers) for agent harnesses.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Agent harness&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Install&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;claude plugin marketplace add google/skills&lt;/code&gt;, then &lt;code&gt;claude plugin install &amp;lt;plugin&amp;gt;@google-plugins&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Codex&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;codex plugin marketplace add google/skills&lt;/code&gt;, then install from the &lt;code&gt;/plugins&lt;/code&gt; browser&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;Antigravity CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;agy plugin install https://github.com/google/skills/&amp;lt;plugin-path&amp;gt;&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Support&lt;/h2&gt; 
&lt;p&gt;If you need help or encounter issues with these skills, search for existing issues or open a new one in the &lt;a href=&quot;https://github.com/google/skills/issues&quot;&gt;GitHub Issue Tracker&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We welcome contributions to improve our skills. You can help by:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/google/skills/issues&quot;&gt;Reporting bugs or inaccuracies&lt;/a&gt; in the skill Markdown files.&lt;/li&gt; 
 &lt;li&gt;Suggesting new skills to add to this repository (for example, Google technologies or recipes) by filing a feature request.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;You are free to copy, modify, and distribute these skills under the terms of the Apache 2.0 license. See the &lt;code&gt;LICENSE&lt;/code&gt; file for details.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>vitali87/code-graph-rag</title>
      <link>https://github.com/vitali87/code-graph-rag</link>
      <description>&lt;p&gt;The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;assets/logo-dark-any.png&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;assets/logo-light-any.png&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/assets/logo-light-any.png&quot; alt=&quot;Code-Graph-RAG Logo&quot; width=&quot;480&quot; /&gt; 
 &lt;/picture&gt; 
 &lt;p&gt; &lt;a href=&quot;https://trendshift.io/repositories/99619&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/99619&quot; alt=&quot;vitali87/code-graph-rag | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt; 
  &lt;!-- Badges below are commented out while the GitHub account is suspended. Restore them when the account is reinstated.
       Stars/Forks: shields.io hits GitHub&#39;s API (returns &quot;repo not found&quot; for suspended accounts).
       gitcgr: indexes from GitHub (shows &quot;not indexed&quot; while unavailable).
       MseeP.ai: badge PNG ignores inline height on Bitbucket and renders as a full-size tile.
  &lt;a href=&quot;https://github.com/vitali87/code-graph-rag/stargazers&quot;&gt;
    &lt;img src=&quot;https://img.shields.io/github/stars/vitali87/code-graph-rag?style=social&quot; alt=&quot;GitHub stars&quot; /&gt;
  &lt;/a&gt;
  &lt;a href=&quot;https://github.com/vitali87/code-graph-rag/network/members&quot;&gt;
    &lt;img src=&quot;https://img.shields.io/github/forks/vitali87/code-graph-rag?style=social&quot; alt=&quot;GitHub forks&quot; /&gt;
  &lt;/a&gt;
  --&gt; &lt;a href=&quot;https://github.com/vitali87/code-graph-rag/actions/workflows/ci.yml&quot;&gt; &lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/vitali87/code-graph-rag/ci.yml?branch=main&quot; alt=&quot;CI&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://codecov.io/gh/vitali87/code-graph-rag&quot;&gt; &lt;img src=&quot;https://codecov.io/gh/vitali87/code-graph-rag/graph/badge.svg?sanitize=true&quot; alt=&quot;Codecov&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/summary/overall?id=vitali87_code-graph-rag&quot;&gt; &lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=vitali87_code-graph-rag&amp;amp;metric=alert_status&quot; alt=&quot;Quality Gate Status&quot; /&gt; &lt;/a&gt; 
  &lt;!--
  &lt;a href=&quot;https://mseep.ai/app/vitali87-code-graph-rag&quot;&gt;
    &lt;img src=&quot;https://mseep.net/pr/vitali87-code-graph-rag-badge.png&quot; alt=&quot;MseeP.ai Security Assessment&quot; height=&quot;20&quot; /&gt;
  &lt;/a&gt;
  --&gt; &lt;a href=&quot;https://code-graph-rag.com&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/Enterprise-Support%20%26%20Services-6366f1&quot; alt=&quot;Enterprise Support&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://pypi.org/project/code-graph-rag/&quot;&gt; &lt;img src=&quot;https://img.shields.io/pypi/v/code-graph-rag&quot; alt=&quot;PyPI Version&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://pepy.tech/projects/code-graph-rag&quot;&gt; &lt;img src=&quot;https://static.pepy.tech/personalized-badge/code-graph-rag?period=total&amp;amp;units=INTERNATIONAL_SYSTEM&amp;amp;left_color=BLACK&amp;amp;right_color=GREEN&amp;amp;left_text=downloads&quot; alt=&quot;PyPI Downloads&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://skillsllm.com/security-check/DHsMGRb1Ysys&quot;&gt; &lt;img src=&quot;https://skillsllm.com/security-check/badge.svg?owner=vitali87&amp;amp;repo=code-graph-rag&quot; alt=&quot;SkillsLLM Security Check&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://scorecard.dev/viewer/?uri=github.com/vitali87/code-graph-rag&quot;&gt; &lt;img src=&quot;https://api.scorecard.dev/projects/github.com/vitali87/code-graph-rag/badge&quot; alt=&quot;OpenSSF Scorecard&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://www.bestpractices.dev/projects/13757&quot;&gt; &lt;img src=&quot;https://www.bestpractices.dev/projects/13757/badge&quot; alt=&quot;OpenSSF Best Practices&quot; /&gt; &lt;/a&gt; 
  &lt;!--
  &lt;a href=&quot;https://gitcgr.com/vitali87/code-graph-rag&quot;&gt;
    &lt;img src=&quot;https://gitcgr.com/badge/vitali87/code-graph-rag.svg&quot; alt=&quot;gitcgr&quot; /&gt;
  &lt;/a&gt;
  --&gt; &lt;/p&gt; 
&lt;/div&gt; 
&lt;h1&gt;Code-Graph-RAG&lt;/h1&gt; 
&lt;p&gt;Code-Graph-RAG parses a multi-language codebase with Tree-sitter, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/assets/demo.gif&quot; alt=&quot;demo&quot; /&gt; &lt;/p&gt; 
&lt;h2&gt;Latest News 🔥&lt;/h2&gt; 
&lt;!-- SECTION:latest_news --&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Ruby Support&lt;/strong&gt;: Ruby joins the graph through a new pluggable ast-grep tier that adds a language from a single YAML pattern file, emitting &lt;code&gt;Module&lt;/code&gt;, &lt;code&gt;Function&lt;/code&gt;, and &lt;code&gt;Class&lt;/code&gt; nodes plus import edges without a hand-written parser.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Structural Search &amp;amp; Replace&lt;/strong&gt;: Find and rewrite code by AST pattern with ast-grep, exposed as agent tools so you can match and transform structure across the whole codebase instead of relying on text or regex.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Data-Flow Tracing&lt;/strong&gt;: New &lt;code&gt;FLOWS_TO&lt;/code&gt; taint edges follow values through assignments, function calls, and I/O sinks. This release adds C#, Java, C, and Go, bringing tracing to 10 languages (Python, JavaScript, TypeScript/TSX, Go, Java, Rust, C++, C, and C#).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;!-- /SECTION:latest_news --&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/NEWS.md&quot;&gt;NEWS.md&lt;/a&gt; for the full history.&lt;/p&gt; 
&lt;h2&gt;What It Does&lt;/h2&gt; 
&lt;p&gt;Point Code-Graph-RAG at a repository and it reads every source file, extracts functions, classes, methods, modules, and the relationships between them, and stores the result as an interconnected graph. Once the graph exists you can:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Ask questions about the codebase in natural language and get answers grounded in the real structure.&lt;/li&gt; 
 &lt;li&gt;Retrieve the actual source of any function, class, or method by name or by intent.&lt;/li&gt; 
 &lt;li&gt;Edit code through the agent with AST-based surgical patching and a diff preview before anything changes.&lt;/li&gt; 
 &lt;li&gt;Optimise code against language best practices or your own coding standards.&lt;/li&gt; 
 &lt;li&gt;Find dead code by walking call and reference edges from entry points.&lt;/li&gt; 
 &lt;li&gt;Search and rewrite structurally by AST pattern with ast-grep.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;How It Works&lt;/h2&gt; 
&lt;p&gt;The system has two components:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Multi-language parser.&lt;/strong&gt; A Tree-sitter based parser reads the codebase and ingests functions, classes, methods, modules, and their relationships into Memgraph under a single language-agnostic schema.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;RAG system&lt;/strong&gt; (&lt;code&gt;codebase_rag/&lt;/code&gt;). An interactive CLI that turns natural language into Cypher queries, retrieves matching code, and drives AI-powered editing and optimisation.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code&gt;Source Code -&amp;gt; Tree-sitter Parser -&amp;gt; AST Analysis -&amp;gt; Memgraph Knowledge Graph
                                                             |
User Query -&amp;gt; AI Model (Cypher Gen) -&amp;gt; Cypher Query -&amp;gt; Graph Results -&amp;gt; Response
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/overview.md&quot;&gt;Architecture Overview&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/graph-schema.md&quot;&gt;Graph Schema&lt;/a&gt; for the full picture.&lt;/p&gt; 
&lt;h2&gt;Supported Languages&lt;/h2&gt; 
&lt;p&gt;Python, TypeScript, TSX, JavaScript, Rust, Go, Java, C, C++, C#, PHP, Lua, and Dart are fully supported. Scala is in development, and Ruby has structural support (modules, functions, classes, and imports) through the pluggable ast-grep tier. See the &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/language-support.md&quot;&gt;Language Support&lt;/a&gt; matrix for per-language capabilities.&lt;/p&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;cgr&lt;/code&gt; is published to PyPI. Install it system-wide with the &lt;code&gt;treesitter-full&lt;/code&gt; (all languages) and &lt;code&gt;semantic&lt;/code&gt; (vector search) extras:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# with uv (recommended)
uv tool install &quot;code-graph-rag[treesitter-full,semantic]&quot;

# or with pipx
pipx install &quot;code-graph-rag[treesitter-full,semantic]&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You also need Docker (for Memgraph), &lt;code&gt;cmake&lt;/code&gt;, and &lt;code&gt;ripgrep&lt;/code&gt;. Full prerequisites, source installs, and environment setup are in the &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/getting-started/installation.md&quot;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Start the packaged Memgraph + Qdrant stack (no compose file needed)
cgr daemon up

# Parse a repository into the graph, then query it
cgr start --repo-path /path/to/repo --update-graph
cgr start --repo-path /path/to/repo
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Repeat the first command for each repository you want indexed; the graph is shared, and syncing one project leaves the others alone. To start over from an empty graph, add &lt;code&gt;--clean&lt;/code&gt; — it deletes &lt;strong&gt;every&lt;/strong&gt; project in the shared graph, not just this one, and asks for confirmation first when other projects would be destroyed.&lt;/p&gt; 
&lt;p&gt;The &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/getting-started/quickstart.md&quot;&gt;Quick Start&lt;/a&gt; guide walks through parsing, querying, and exporting in five minutes.&lt;/p&gt; 
&lt;h2&gt;MCP Server&lt;/h2&gt; 
&lt;p&gt;Code-Graph-RAG runs as an &lt;a href=&quot;https://modelcontextprotocol.io&quot;&gt;MCP&lt;/a&gt; server so Claude Code and other MCP clients can query and edit your codebase directly. See the &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/mcp-server.md&quot;&gt;MCP Server&lt;/a&gt; guide for setup.&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/getting-started/installation.md&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/getting-started/quickstart.md&quot;&gt;Quick Start&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/getting-started/configuration.md&quot;&gt;Configuration&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;User Guide&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/cli-reference.md&quot;&gt;CLI Reference&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/interactive-querying.md&quot;&gt;Interactive Querying&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/code-optimization.md&quot;&gt;Code Optimisation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/dead-code.md&quot;&gt;Dead Code Detection&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/graph-export.md&quot;&gt;Graph Export&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/realtime-updates.md&quot;&gt;Real-Time Updates&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/guide/mcp-server.md&quot;&gt;MCP Server&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/overview.md&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/graph-schema.md&quot;&gt;Graph Schema&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/language-support.md&quot;&gt;Language Support&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/architecture/data-flow-edges.md&quot;&gt;Data-Flow Edges&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Python SDK&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/sdk/overview.md&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/sdk/graph-loader.md&quot;&gt;Graph Loader&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/sdk/cypher-generator.md&quot;&gt;Cypher Generator&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/sdk/semantic-search.md&quot;&gt;Semantic Search&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/advanced/adding-languages.md&quot;&gt;Adding Languages&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/advanced/ignore-patterns.md&quot;&gt;Ignore Patterns&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/advanced/building-binaries.md&quot;&gt;Building Binaries&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/advanced/troubleshooting.md&quot;&gt;Troubleshooting&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Enterprise Services&lt;/h2&gt; 
&lt;p&gt;Code-Graph-RAG is open source and free to use. For organisations that need more, we offer &lt;strong&gt;fully managed cloud-hosted solutions&lt;/strong&gt; and &lt;strong&gt;on-premise deployments&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Cloud-Hosted Deployment&lt;/strong&gt;: Managed cloud infrastructure for both the graph database and the AI agent connection. Zero infrastructure overhead, so we handle scaling, updates, and availability while your team focuses on building.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;On-Premise &amp;amp; Air-Gapped Deployment&lt;/strong&gt;: Deploy Code-Graph-RAG entirely within your own environment, including air-gapped networks. Full data sovereignty for regulated industries and security-sensitive organisations.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;We also offer custom development, integration consulting, technical support contracts, and team training.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://code-graph-rag.com/enterprise&quot;&gt;View plans &amp;amp; pricing at code-graph-rag.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Please see &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for contribution guidelines. Good first PRs come from the TODO issues.&lt;/p&gt; 
&lt;h2&gt;Support&lt;/h2&gt; 
&lt;p&gt;For issues or questions, check the &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/docs/advanced/troubleshooting.md&quot;&gt;Troubleshooting&lt;/a&gt; guide first, then open an issue.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;MIT. See &lt;a href=&quot;https://raw.githubusercontent.com/vitali87/code-graph-rag/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>uber/ADR</title>
      <link>https://github.com/uber/ADR</link>
      <description>&lt;p&gt;ADR secures enterprise AI agents through observability, security benchmarking, and threat detection. Deployed at Uber.&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;ADR: Agentic AI Detection and Response&lt;/h1&gt; 
&lt;p&gt;ADR (Agentic AI Detection and Response) is an enterprise security system for AI agents. It helps organizations secure employee-facing agents such as Cursor, Claude Code, and Codex, as well as customer-facing agents such as AI support agents.&lt;/p&gt; 
&lt;p&gt;ADR is &lt;strong&gt;deployed in production at Uber&lt;/strong&gt;, and the accompanying paper was accepted to &lt;strong&gt;MLSys 2026&lt;/strong&gt;: &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/docs/adr-paper.pdf&quot;&gt;Paper PDF&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/docs/adr-mlsys-2026-slides.pdf&quot;&gt;Slides PDF&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;How ADR secures enterprise AI agents&lt;/h2&gt; 
&lt;p&gt;ADR secures enterprise AI agents through four complementary capabilities: observing agent activity, evaluating defenses, detecting threats, and preventing unsafe actions.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;ADR Observability: Understand what AI agents are doing and why.&lt;/strong&gt; In production, ADR captures agent intent, tool use, and execution traces across 7+ AI coding tools on macOS, Linux, and Windows, as well as internal automation and customer-facing support agents.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;ADR Benchmark: Test agent security under realistic enterprise conditions.&lt;/strong&gt; ADR-Bench includes 300+ tasks, 133 MCP servers, and coverage of all 17 agent attack techniques.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;ADR Detection: Detect risky agent behavior efficiently.&lt;/strong&gt; Its two-tier architecture combines high-recall triage with deeper agentic reasoning for suspicious sessions.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;ADR Prevention: Stop unsafe actions before they cause harm.&lt;/strong&gt; This component is not included in the current open-source release. &lt;strong&gt;Stay tuned.&lt;/strong&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Repository layout&lt;/h2&gt; 
&lt;p&gt;This repository contains the open-source &lt;strong&gt;ADR Sensor&lt;/strong&gt;, &lt;strong&gt;ADR-Bench&lt;/strong&gt;, and &lt;strong&gt;ADR Detector&lt;/strong&gt; described in the paper. The offline &lt;strong&gt;ADR Explorer&lt;/strong&gt; engine, which hardens ADR Detection through pre-deployment red teaming, is not included here.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Path&lt;/th&gt; 
   &lt;th&gt;ADR component&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Sensor/&quot;&gt;Sensor/&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;ADR Observability&lt;/td&gt; 
   &lt;td&gt;Collect and normalize agent telemetry from Claude Code, Cursor, Codex, opencode, Claude Desktop, and others&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Detection/&quot;&gt;Detection/&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;ADR Benchmark + Detection&lt;/td&gt; 
   &lt;td&gt;Dual-agent detector, 133 MCP servers, 303 benchmark tasks, baselines, figure scripts&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/docs/REPRODUCIBILITY.md&quot;&gt;docs/REPRODUCIBILITY.md&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Evaluation&lt;/td&gt; 
   &lt;td&gt;Step-by-step workflow to reproduce benchmark detection and paper figures&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Quick start: ADR Detection&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/uber/ADR
cd ADR/Detection
uv sync
export ANTHROPIC_API_KEY=&quot;...&quot; OPENAI_API_KEY=&quot;...&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Default detector is &lt;code&gt;adr&lt;/code&gt; (ADR dual-agent). For keyless smoke tests, use &lt;code&gt;--detector llamafirewall&lt;/code&gt; (see &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Detection/README.md&quot;&gt;Detection/README.md&lt;/a&gt;).&lt;/p&gt; 
&lt;p&gt;See &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/docs/REPRODUCIBILITY.md&quot;&gt;docs/REPRODUCIBILITY.md&lt;/a&gt;&lt;/strong&gt; for the full evaluation workflow (inflate packed benchmark → run detectors → plot figures).&lt;/p&gt; 
&lt;p&gt;Component documentation:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Sensor/README.md&quot;&gt;Sensor/README.md&lt;/a&gt;: telemetry collection and unified schema&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Detection/README.md&quot;&gt;Detection/README.md&lt;/a&gt;: ADR-Bench, detector baselines, MCP infrastructure&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Citation&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bibtex&quot;&gt;@inproceedings{li2026adr,
  title={ADR: An Agentic Detection System for Enterprise Agentic AI Security},
  author={Li, Chenning and Hu, Pan and Xu, Justin and Ozbas, Baris and Liu, Olivia and Van, Caroline and Li, Manxue and Zhou, Wei and Alizadeh, Mohammad and Zhang, Pengyu and Sriramadhesikan, KK and Zhang, Ming},
  booktitle={Proceedings of the Ninth Conference on Machine Learning and Systems},
  year={2026}
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Or use &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/CITATION.cff&quot;&gt;CITATION.cff&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;Apache License 2.0. See &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt;. &lt;code&gt;Detection/benchmark/agentdojo/&lt;/code&gt; is vendored third-party code under its own &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/Detection/benchmark/agentdojo/LICENSE&quot;&gt;LICENSE&lt;/a&gt; (MIT).&lt;/p&gt; 
&lt;h2&gt;Data notice&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;Detection/&lt;/code&gt; includes &lt;strong&gt;synthetic&lt;/strong&gt; benchmark fixtures (fake credentials, emulated environments, prompt-injection scenarios) for defensive security research only. Details: &lt;a href=&quot;https://raw.githubusercontent.com/uber/ADR/main/docs/OPEN_SOURCE_REVIEW.md&quot;&gt;docs/OPEN_SOURCE_REVIEW.md&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>virgiliojr94/book-to-skill</title>
      <link>https://github.com/virgiliojr94/book-to-skill</link>
      <description>&lt;p&gt;Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/assets/banner.webp&quot; alt=&quot;Booklin, the book-to-skill wizard, holding an open book whose pages scatter into sparkles that settle into an ordered grid&quot; width=&quot;100%&quot; /&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;book-to-skill&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;Turn any technical book, document folder, or collection of sources into a unified agent skill — ready to study, reference, and use while you work in GitHub Copilot CLI, Amp, or Claude Code.&lt;/strong&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/virgiliojr94/book-to-skill/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/virgiliojr94/book-to-skill?style=for-the-badge&amp;amp;color=blueviolet&quot; alt=&quot;Latest release&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://img.shields.io/badge/Agent_Skills-Open_Standard-blueviolet?style=for-the-badge&quot; alt=&quot;Agent Skills standard&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/PDF%20%E2%80%A2%20EPUB%20%E2%80%A2%20DOCX%20%E2%80%A2%20MD%20%E2%80%A2%20HTML%20%E2%80%A2%20RTF%20%E2%80%A2%20MOBI-supported-green?style=for-the-badge&quot; alt=&quot;Formats supported&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/License-MIT-blue?style=for-the-badge&quot; alt=&quot;MIT License&quot; /&gt; &lt;a href=&quot;https://github.com/sponsors/virgiliojr94&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/sponsors/virgiliojr94?style=for-the-badge&amp;amp;color=ea4aaa&amp;amp;logo=githubsponsors&amp;amp;logoColor=white&quot; alt=&quot;Sponsor&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://trendshift.io/repositories/27038?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-27038&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/27038&quot; alt=&quot;virgiliojr94%2Fbook-to-skill | Trendshift&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://trendshift.io/repositories/27038?utm_source=trendshift-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-trendshift-27038&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/trendshift/repositories/27038/daily?language=Python&quot; alt=&quot;virgiliojr94%2Fbook-to-skill | Trendshift (daily, Python)&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/#-why&quot;&gt;Why&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/#-what-it-generates&quot;&gt;What it generates&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/#-beyond-books&quot;&gt;Beyond books&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/how-it-works.md&quot;&gt;How it works&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/usage.md&quot;&gt;Usage&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/install.md&quot;&gt;Install&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/faq.md&quot;&gt;FAQ&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/performance.md&quot;&gt;Performance&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/architecture.md&quot;&gt;Architecture&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/CHANGELOG.md&quot;&gt;Changelog&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;24×–51× fewer tokens than dumping the book into context&lt;/strong&gt; to answer one question, measured on real books (&lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/performance.md#the-discovery-loop-tax&quot;&gt;how it&#39;s measured&lt;/a&gt;). &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;How it works, in 3 steps:&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Point&lt;/strong&gt; it at a file, folder, or glob — &lt;code&gt;/book-to-skill ./my-book.pdf&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;It distills&lt;/strong&gt; the book into a skill — frameworks, decision rules, anti-patterns, and per-chapter files. Structure, not a summary.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Your agent loads it on demand&lt;/strong&gt; — ask &lt;code&gt;/my-book replication&lt;/code&gt; and it reads the right chapter and answers from the real content, no hallucination.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🤔 Why&lt;/h2&gt; 
&lt;img align=&quot;right&quot; width=&quot;200&quot; src=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/assets/booklin.png&quot; alt=&quot;Booklin — the book-to-skill mascot, a purple wizard holding a book&quot; /&gt; 
&lt;p&gt;You buy a great technical book. You read it once. Three months later you can&#39;t remember chapter 7 existed.&lt;/p&gt; 
&lt;p&gt;The usual workarounds don&#39;t help:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;📄 &quot;Let me just search the PDF&quot; → you get a list of pages, not answers&lt;/li&gt; 
 &lt;li&gt;🧠 &quot;I&#39;ll ask the agent about this book&quot; → it either hallucinates or says it doesn&#39;t have the content&lt;/li&gt; 
 &lt;li&gt;📝 &quot;I&#39;ll take notes as I read&quot; → you end up with a 200-line doc you never open again&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;book-to-skill solves this by turning the book into a structured skill your agent loads on demand.&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Once installed, you just type &lt;code&gt;/your-book-slug replication&lt;/code&gt; and the agent reads the right chapter and answers from the actual content. No hallucination. No digging through PDFs. The book becomes part of your workflow.&lt;/p&gt; 
&lt;p&gt;Works with any host that supports the open &lt;a href=&quot;https://github.com/agentskills/agentskills&quot;&gt;Agent Skills&lt;/a&gt; standard — GitHub Copilot CLI, Amp, and Claude Code all read the same &lt;code&gt;SKILL.md&lt;/code&gt; format.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📦 What it generates&lt;/h2&gt; 
&lt;p&gt;Running &lt;code&gt;/book-to-skill your-book.pdf&lt;/code&gt; (or a folder, glob, or list of files) creates a full skill in your agent&#39;s skills directory (&lt;code&gt;~/.copilot/skills/&amp;lt;slug&amp;gt;/&lt;/code&gt; for Copilot CLI, &lt;code&gt;~/.agents/skills/&amp;lt;slug&amp;gt;/&lt;/code&gt; for Amp or cross-agent, &lt;code&gt;~/.claude/skills/&amp;lt;slug&amp;gt;/&lt;/code&gt; for Claude Code):&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;File&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
   &lt;th&gt;Size&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;SKILL.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Core mental models + chapter index&lt;/td&gt; 
   &lt;td&gt;~4,000 tokens&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;chapters/ch01-*.md&lt;/code&gt; …&lt;/td&gt; 
   &lt;td&gt;One file per chapter, loaded on-demand&lt;/td&gt; 
   &lt;td&gt;~1,000 tokens each&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glossary.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Every key term, alphabetically sorted with chapter refs&lt;/td&gt; 
   &lt;td&gt;~1,500 tokens&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;patterns.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;All techniques, algorithms, and design patterns&lt;/td&gt; 
   &lt;td&gt;~2,000 tokens&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cheatsheet.md&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Decision tables and quick-reference rules&lt;/td&gt; 
   &lt;td&gt;~1,000 tokens&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Chapter files are loaded on-demand&lt;/strong&gt; — they don&#39;t count against the skill budget until you ask about that topic.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🏢 Beyond books&lt;/h2&gt; 
&lt;p&gt;The name says &quot;book&quot;, but the input is any structured prose. The same extraction works on knowledge you own and re-read constantly:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Internal documentation&lt;/strong&gt; — architecture decision records, runbooks, onboarding guides. Fold a whole &lt;code&gt;docs/&lt;/code&gt; folder into one skill and ask it while you code.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Brand &amp;amp; design systems&lt;/strong&gt; — voice guidelines, tone-of-voice docs, component principles. Turn a brand book into a skill your team queries instead of skimming a 60-page PDF.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Research clusters&lt;/strong&gt; — a stack of papers plus your own notes, merged into a single unified skill and updated as new material lands (see &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/#-usage&quot;&gt;Update / fold-in&lt;/a&gt;).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Specs &amp;amp; standards&lt;/strong&gt; — RFCs, API contracts, compliance docs you reference but never memorize.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If you re-open a document often enough to wish you&#39;d memorized it, it&#39;s a candidate.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🧾 The Discovery Loop Tax&lt;/h2&gt; 
&lt;p&gt;A PDF-reading agent doesn&#39;t just read — it &lt;em&gt;navigates&lt;/em&gt;: it re-fetches the ToC, backtracks, and re-processes all of it on every turn. book-to-skill pays that structuring cost &lt;strong&gt;once&lt;/strong&gt;, at conversion, so queries stay proportional to the answer — &lt;strong&gt;24×–51× fewer tokens&lt;/strong&gt; than dumping the book into context, measured on real books.&lt;/p&gt; 
&lt;p&gt;📊 &lt;strong&gt;Full methodology, numbers, and per-book tables → &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/performance.md#the-discovery-loop-tax&quot;&gt;docs/performance.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;⚙️ How it works&lt;/h2&gt; 
&lt;p&gt;Two halves: a deterministic Python &lt;strong&gt;extractor&lt;/strong&gt; (document → clean text + metadata) and a spec-driven &lt;strong&gt;generator&lt;/strong&gt; (your agent follows &lt;code&gt;SKILL.md&lt;/code&gt; to turn that into a structured skill). On-demand chapter files keep the loaded skill small.&lt;/p&gt; 
&lt;p&gt;🔧 &lt;strong&gt;Full walkthrough (Steps 0–10, extraction modes, token budgets) → &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/how-it-works.md&quot;&gt;docs/how-it-works.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🚀 Usage&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;/book-to-skill &amp;lt;path|folder|glob&amp;gt; [skill-name]&lt;/code&gt; — plus analyze-only, generate-from-analysis, and update/fold-in modes.&lt;/p&gt; 
&lt;p&gt;▶️ &lt;strong&gt;All modes and examples → &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/usage.md&quot;&gt;docs/usage.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;💬 &lt;strong&gt;Using it for something? → &lt;a href=&quot;https://github.com/virgiliojr94/book-to-skill-use-cases&quot;&gt;use cases&lt;/a&gt;&lt;/strong&gt; — what people converted, the numbers they measured, and where it fell short. Your account lives in your own Gist; the index takes a one-line PR.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📥 Install&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# One command, any host — via the cross-agent skills CLI:
npx skills add virgiliojr94/book-to-skill

# Or manually — clone into your skills folder (registers /book-to-skill):
git clone https://github.com/virgiliojr94/book-to-skill.git ~/.claude/skills/book-to-skill
# (Copilot CLI: ~/.copilot/skills/ · Amp/cross-agent: ~/.agents/skills/)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;📥 &lt;strong&gt;All hosts, optional extractors, and the standalone CLI → &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/install.md&quot;&gt;docs/install.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;❓ FAQ&lt;/h2&gt; 
&lt;p&gt;Common questions — &quot;why not just dump the PDF?&quot;, cost, privacy, non-book inputs, multi-file books.&lt;/p&gt; 
&lt;p&gt;❓ &lt;strong&gt;Answers → &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/faq.md&quot;&gt;docs/faq.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;details&gt; 
 &lt;summary&gt;🔧 &lt;strong&gt;Requirements&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;The extractor tries tools in order per format and uses the first available. If nothing is installed, it tells you which command to run. Plain text, Markdown, reStructuredText and AsciiDoc need no extra deps.&lt;/p&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;strong&gt;Check your setup in one command:&lt;/strong&gt; &lt;code&gt;python3 scripts/extract.py --check&lt;/code&gt; prints which extractors are installed for every format and the exact command to install anything missing — no file needed.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;PDF — choose by book type:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Book type&lt;/th&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;Install&lt;/th&gt; 
    &lt;th&gt;Speed&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Text-heavy (prose, few tables)&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pdftotext&lt;/code&gt; (poppler)&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;sudo apt install poppler-utils&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;⚡ instant&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Text-heavy fallback&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pypdf&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install pypdf&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;⚡ instant&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Text-heavy fallback&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pdfminer.six&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install pdfminer.six&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;⚡ instant&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Technical (code, tables, formulas)&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;strong&gt;&lt;code&gt;docling&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install docling&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;~1.5s/page&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;Before extraction begins, the skill asks you whether the book is &lt;strong&gt;technical&lt;/strong&gt; or &lt;strong&gt;text-heavy&lt;/strong&gt; and picks the right tool automatically. Docling preserves markdown tables and code blocks; pdftotext is faster for prose-only books.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;strong&gt;Scanned PDFs need OCR first.&lt;/strong&gt; A PDF that is page images with no text layer — a photographed or scanned book — has nothing for these tools to extract. The extractor checks the first pages and stops immediately with an explanation, rather than working through the whole book to produce an empty skill. Run OCR yourself, then convert the result:&lt;/p&gt; 
  &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ocrmypdf input.pdf output.pdf
&lt;/code&gt;&lt;/pre&gt; 
 &lt;/blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;EPUB:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;Install&lt;/th&gt; 
    &lt;th&gt;Quality&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;code&gt;ebooklib&lt;/code&gt; + &lt;code&gt;beautifulsoup4&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install ebooklib beautifulsoup4&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;⭐⭐⭐ Best&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;stdlib &lt;code&gt;zipfile&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;built-in — no install needed&lt;/td&gt; 
    &lt;td&gt;⭐⭐ Always available&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Other formats:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Format&lt;/th&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;Install&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;DOCX&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;python-docx&lt;/code&gt; (fallback: stdlib ZIP/XML)&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install python-docx&lt;/code&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;HTML&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;beautifulsoup4&lt;/code&gt; (fallback: stdlib &lt;code&gt;html.parser&lt;/code&gt;)&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install beautifulsoup4&lt;/code&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;RTF&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;striprtf&lt;/code&gt; (fallback: regex)&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;pip3 install striprtf&lt;/code&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;MOBI / AZW / AZW3&lt;/td&gt; 
    &lt;td&gt;Calibre &lt;code&gt;ebook-convert&lt;/code&gt; (external app, not pip)&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://calibre-ebook.com/download&quot;&gt;https://calibre-ebook.com/download&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;TXT / Markdown / reStructuredText / AsciiDoc&lt;/td&gt; 
    &lt;td&gt;built-in&lt;/td&gt; 
    &lt;td&gt;—&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;hr /&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;📁 &lt;strong&gt;Repository structure&lt;/strong&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code&gt;book-to-skill/
├── SKILL.md              # Skill definition + step-by-step instructions (the generator spec)
├── scripts/
│   ├── extract.py        # Thin entrypoint wrapper
│   └── extractor/        # Modular extraction package
│       ├── config.py     # Extensions, paths, dependency constants
│       ├── dependencies.py  # optional-dep probing + --check
│       ├── exceptions.py # ExtractionError (per-source failures, batch-safe)
│       ├── utils.py      # CLI parsing, multi-source resolution, chapter detection, runner
│       └── parsers/      # Format-specific parsers (pdf, epub, docx, html, rtf, calibre, text)
├── tools/
│   ├── discovery_tax.py  # measures token cost vs context-dump / discovery loop
│   └── validate_skill.py # checks a generated SKILL.md against host rules (--lens claude|copilot|amp)
├── tests/                # pytest suite (extraction, detection, discovery tax)
├── docs/
│   ├── performance.md    # measured benchmarks, discovery tax, cost
│   └── architecture.md   # pipeline + component map
├── CHANGELOG.md          # release history (semver)
├── CONTRIBUTING.md       # dev setup, PR conventions, release process
├── SECURITY.md           # vulnerability reporting
└── README.md             # This file
&lt;/code&gt;&lt;/pre&gt; 
 &lt;hr /&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;⚖️ Copyright &amp;amp; fair use&lt;/h2&gt; 
&lt;p&gt;book-to-skill ships &lt;strong&gt;no book content&lt;/strong&gt; — not a single page. It&#39;s a converter you point at files you already own.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Processing is local.&lt;/strong&gt; Extraction and analysis run on your machine. Your files are never uploaded by this tool. (If your agent&#39;s model runs in the cloud, the text you feed it follows that provider&#39;s normal data terms — same as any prompt.)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;You use your own copy.&lt;/strong&gt; Bring a book you bought, docs your company owns, or papers you have the right to read.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;The output is your notes.&lt;/strong&gt; A generated skill is a structured, synthesized derivative — framework names, definitions, takeaways — not a reproduction of the text. The skill explicitly never copies raw passages (see Quality Rule #7). Treat it like handwritten study notes: yours, for personal use.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Don&#39;t redistribute.&lt;/strong&gt; Publishing or sharing a generated skill of a copyrighted work can infringe the rights holder. Keep skills of third-party books private. Internal docs, your own writing, and openly-licensed material are fine to share within the bounds of their license.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;When in doubt, follow the license or terms of the source document. This project is a tool; how you use it is on you.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;💖 Sponsors&lt;/h2&gt; 
&lt;img align=&quot;right&quot; width=&quot;150&quot; src=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/docs/assets/booklin-celebrating.png&quot; alt=&quot;Booklin celebrating&quot; /&gt; 
&lt;p&gt;book-to-skill is free and MIT-licensed, maintained on personal time. If it saves you tokens or study hours, consider sponsoring its upkeep: PR reviews, multilingual fixes, releases, and docs.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/sponsors/virgiliojr94&quot;&gt;Become a sponsor → github.com/sponsors/virgiliojr94&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Every sponsor is listed in &lt;a href=&quot;https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/BACKERS.md&quot;&gt;BACKERS.md&lt;/a&gt;. Thank you for keeping open, privacy-first tooling alive. ✨&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;MIT — applies to the converter (code + skill definition) in this repository, &lt;strong&gt;not&lt;/strong&gt; to any book or document you process with it.&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/?repos=virgiliojr94%2Fbook-to-skill&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://api.star-history.com/chart?repos=virgiliojr94/book-to-skill&amp;amp;type=date&amp;amp;theme=dark&amp;amp;legend=top-left&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://api.star-history.com/chart?repos=virgiliojr94/book-to-skill&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://api.star-history.com/chart?repos=virgiliojr94/book-to-skill&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt;</description>
      
    </item>
    
    <item>
      <title>unclebob/swarm-forge</title>
      <link>https://github.com/unclebob/swarm-forge</link>
      <description>&lt;p&gt;A simple tool for coordinating several AI agents.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot; style=&quot;color: red; font-weight: bold; font-size: 2em; font-style: italic; text-decoration: underline;&quot;&gt; Do not spend any money on a bankrbot SWARM token. &lt;/p&gt; 
&lt;h1&gt;SwarmForge&lt;/h1&gt; 
&lt;p&gt;&lt;strong&gt;A disciplined tmux-based agent orchestration platform that turns swarms of AI agents into reliable, professional software engineers.&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;Intent&lt;/h2&gt; 
&lt;p&gt;This &lt;code&gt;main&lt;/code&gt; branch is documentary: it explains the system and carries the shared operational scripts and default constitution articles. The runnable workflow branches carry the project-facing configurations, role prompts, and local constitution articles that define specific workflows.&lt;/p&gt; 
&lt;p&gt;SwarmForge is an agent coordination system that facilitates communication between agents working in different git worktrees.&lt;/p&gt; 
&lt;p&gt;It provides a shared structure for role-specific prompts, worktree assignment, tmux sessions, and message passing so multiple agents can collaborate on the same project without stepping on each other.&lt;/p&gt; 
&lt;h2&gt;Branches&lt;/h2&gt; 
&lt;p&gt;The runnable SwarmForge configurations live on dedicated branches. Each branch contains the &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt;, local constitution articles, and role prompts for one workflow. At startup, its &lt;code&gt;./swarm&lt;/code&gt; wrapper copies the shared operational scripts and shared constitution articles from &lt;code&gt;main&lt;/code&gt; when they are not already present, then launches that branch&#39;s local configuration.&lt;/p&gt; 
&lt;h3&gt;&lt;code&gt;two-pack&lt;/code&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;two-pack&lt;/code&gt; is the quick backend workflow. Use it for small tasks that benefit from fast coding without the overhead of Gherkin and acceptance testing, while still preserving backend refactoring and hardening.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;coder&lt;/code&gt; implements requested behavior with TDD and unit tests.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;cleaner&lt;/code&gt; batches coder handoffs and performs cleanup, CRAP and DRY review, architectural review, encapsulation and separation-of-concerns fixes, and language mutation hardening.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The normal flow is &lt;code&gt;coder&lt;/code&gt; -&amp;gt; &lt;code&gt;cleaner&lt;/code&gt; -&amp;gt; &lt;code&gt;coder&lt;/code&gt;. Use this branch when you want a tight implementation/refinement loop without specification, QA, property-test, or acceptance-test roles.&lt;/p&gt; 
&lt;h3&gt;&lt;code&gt;four-pack&lt;/code&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;four-pack&lt;/code&gt; is the compact specification workflow. Use it for moderate projects that require Gherkin specification and some architectural consideration without splitting every quality gate into its own agent:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;specifier&lt;/code&gt; turns user intent into precise Gherkin acceptance specifications and asks for approval before handoff.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;coder&lt;/code&gt; implements approved behavior slices with TDD, unit tests, and generated acceptance tests.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;refactorer&lt;/code&gt; performs behavior-preserving cleanup, coverage improvement, CRAP and DRY review, mutation-site scans, and property-test support.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;architect&lt;/code&gt; owns high-level structure, dependency direction, mutation hardening, DRY review, soft Gherkin mutation, and final completion notification.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The normal flow is &lt;code&gt;specifier&lt;/code&gt; -&amp;gt; &lt;code&gt;coder&lt;/code&gt; -&amp;gt; &lt;code&gt;refactorer&lt;/code&gt; -&amp;gt; &lt;code&gt;architect&lt;/code&gt; -&amp;gt; &lt;code&gt;specifier&lt;/code&gt;. Use this branch when you want disciplined development without splitting cleanup, architecture, hardening, and QA into separate agents.&lt;/p&gt; 
&lt;h3&gt;&lt;code&gt;six-pack&lt;/code&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;six-pack&lt;/code&gt; is the full workflow. Use it for major projects that require full specification, up-front QA, backend verification, and significant architectural consideration. It separates each major quality gate into its own role:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;specifier&lt;/code&gt; turns user intent into accepted Gherkin specifications and end-to-end QA procedures.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;coder&lt;/code&gt; implements approved behavior slices with TDD, unit tests, and generated acceptance tests.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;cleaner&lt;/code&gt; performs local behavior-preserving cleanup, coverage improvement, CRAP and DRY review, and mutation-site scans.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;architect&lt;/code&gt; reviews module structure, boundaries, dependency direction, and property-test coverage.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;hardender&lt;/code&gt; performs mutation hardening, language mutation, CRAP and DRY verification, and soft Gherkin mutation.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;QA&lt;/code&gt; converts the specifier&#39;s QA procedures into executable scripts, runs final user-interface verification, checks handoff consistency, and sends completion notifications.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The normal flow is &lt;code&gt;specifier&lt;/code&gt; -&amp;gt; &lt;code&gt;coder&lt;/code&gt; -&amp;gt; &lt;code&gt;cleaner&lt;/code&gt; -&amp;gt; &lt;code&gt;architect&lt;/code&gt; -&amp;gt; &lt;code&gt;hardender&lt;/code&gt; -&amp;gt; &lt;code&gt;QA&lt;/code&gt; -&amp;gt; completion. Use this branch when you want each review and verification concern owned by a separate agent.&lt;/p&gt; 
&lt;h2&gt;Prerequisites&lt;/h2&gt; 
&lt;p&gt;SwarmForge runs locally. Before starting a runnable branch, make sure the target machine has:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;zsh&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;git&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;tmux&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Babashka (&lt;code&gt;bb&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;At least one configured agent backend, such as &lt;code&gt;codex&lt;/code&gt;, &lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;copilot&lt;/code&gt;, or &lt;code&gt;grok&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Getting Started&lt;/h2&gt; 
&lt;p&gt;In the directory where you want to use SwarmForge, choose a runnable branch and pull its contents without creating a Git remote:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;BRANCH=four-pack
curl -L &quot;https://github.com/unclebob/swarm-forge/archive/refs/heads/${BRANCH}.tar.gz&quot; | tar -xz --strip-components=1
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Use &lt;code&gt;BRANCH=two-pack&lt;/code&gt; for the quick two-agent workflow, &lt;code&gt;BRANCH=four-pack&lt;/code&gt; for the compact specification workflow, or &lt;code&gt;BRANCH=six-pack&lt;/code&gt; for the full six-agent workflow. Do not use &lt;code&gt;main&lt;/code&gt; for this command; &lt;code&gt;main&lt;/code&gt; is documentary and stores the shared operational scripts, while the runnable branches provide the configurations and prompts intended for projects.&lt;/p&gt; 
&lt;p&gt;After copying a runnable branch, start the swarm from the target project:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;./swarm
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The &lt;code&gt;./swarm&lt;/code&gt; wrapper keeps the runnable branch small. On first use, if &lt;code&gt;swarmforge/scripts/&lt;/code&gt; is missing, it downloads the &lt;code&gt;main&lt;/code&gt; branch archive, copies the shared operational scripts from &lt;code&gt;swarmforge/scripts/&lt;/code&gt;, stages shared constitution articles from &lt;code&gt;swarmforge/constitution/articles/&lt;/code&gt;, and then launches &lt;code&gt;swarmforge/scripts/swarmforge.sh&lt;/code&gt;. Later runs reuse the existing local scripts directory instead of overwriting it.&lt;/p&gt; 
&lt;p&gt;The windows should open automatically.&lt;/p&gt; 
&lt;p&gt;To stop the swarm, close the first window listed in &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt;. That cleanup window shuts down the tmux sessions and closes the remaining tracked windows.&lt;/p&gt; 
&lt;p&gt;While a swarm is active, SwarmForge tries to prevent the host from sleeping. On macOS it uses &lt;code&gt;caffeinate&lt;/code&gt;; on Linux it uses &lt;code&gt;systemd-inhibit&lt;/code&gt; when available. Display lock or manual sleep can still interrupt agents depending on the OS. Set &lt;code&gt;SWARMFORGE_PREVENT_SLEEP=0&lt;/code&gt; before &lt;code&gt;./swarm&lt;/code&gt; to disable this behavior.&lt;/p&gt; 
&lt;h2&gt;What SwarmForge Does&lt;/h2&gt; 
&lt;p&gt;SwarmForge is a lightweight, tmux-based orchestration layer that:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Launches a &lt;strong&gt;config-driven swarm&lt;/strong&gt; from a project-local &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Creates one tmux session per configured role and opens a terminal surface for each role when the selected backend supports it&lt;/li&gt; 
 &lt;li&gt;Reads behavior from project-local &lt;code&gt;swarmforge/roles/&amp;lt;role&amp;gt;.prompt&lt;/code&gt; files plus a layered &lt;code&gt;swarmforge/constitution.prompt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Supports per-role backends such as &lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;codex&lt;/code&gt;, &lt;code&gt;copilot&lt;/code&gt;, or &lt;code&gt;grok&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Puts the shared &lt;code&gt;swarmforge/scripts/&lt;/code&gt; directory on each agent&#39;s &lt;code&gt;PATH&lt;/code&gt;, including handoff helpers for active swarm communication&lt;/li&gt; 
 &lt;li&gt;Creates git worktrees under &lt;code&gt;.worktrees/&lt;/code&gt; for roles assigned to dedicated worktree names&lt;/li&gt; 
 &lt;li&gt;Initializes a git repository in a new working directory when needed&lt;/li&gt; 
 &lt;li&gt;Keeps all swarm state local to the working directory in &lt;code&gt;.swarmforge/&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Core Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Config-Driven Topology&lt;/strong&gt; — The swarm shape comes from &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt;, not hardcoded shell variables.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Project-Local Roles&lt;/strong&gt; — Each role is defined by &lt;code&gt;swarmforge/roles/&amp;lt;role&amp;gt;.prompt&lt;/code&gt; in the working tree being orchestrated.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Layered Constitution&lt;/strong&gt; — &lt;code&gt;swarmforge/constitution.prompt&lt;/code&gt; directs agents to read article files under &lt;code&gt;swarmforge/constitution/articles/&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Backend Selection Per Role&lt;/strong&gt; — A role can launch &lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;codex&lt;/code&gt;, &lt;code&gt;copilot&lt;/code&gt;, or &lt;code&gt;grok&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Observable Swarm&lt;/strong&gt; — Open one Terminal window per role and watch the sessions in real time.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Self-Hosted &amp;amp; Lightweight&lt;/strong&gt; — Runs locally in tmux and Terminal with minimal machinery.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Constitution Structure&lt;/h2&gt; 
&lt;p&gt;Each runnable branch contains a &lt;code&gt;swarmforge/&lt;/code&gt; directory with this general layout:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;swarmforge/
  swarmforge.conf
  constitution.prompt
  constitution/
    articles/
      project.prompt
      local-engineering.prompt
      local-workflow.prompt
      ...
  roles/
    &amp;lt;role&amp;gt;.prompt
    ...
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;constitution.prompt&lt;/code&gt; is the entry point. Runnable branches normally use it to tell agents to read every file in &lt;code&gt;swarmforge/constitution/articles/&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Shared default articles live on &lt;code&gt;main&lt;/code&gt; under:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;swarmforge/constitution/articles/
  engineering.prompt
  handoffs.prompt
  workflow.prompt
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;At startup, SwarmForge installs missing shared articles into the runnable branch&#39;s &lt;code&gt;swarmforge/constitution/articles/&lt;/code&gt; directory before creating role worktrees. It also installs missing shared articles into each role worktree during script synchronization. Existing local files are skipped, so a runnable branch can override a shared article by committing an article with the same filename.&lt;/p&gt; 
&lt;p&gt;Pack-specific additions and exceptions should use explicit local filenames rather than editing shared articles. Current conventions are:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;project.prompt&lt;/code&gt; for the workflow&#39;s project shape and local topology.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;local-engineering.prompt&lt;/code&gt; for workflow-specific engineering rules.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;local-workflow.prompt&lt;/code&gt; for workflow-specific flow rules.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The &lt;code&gt;local-*.prompt&lt;/code&gt; naming convention means &quot;add to or specialize the shared default article for this runnable branch.&quot; Use it when the shared article remains valid and the branch only needs extra requirements, exceptions, or narrower instructions. Do not use &lt;code&gt;local-*.prompt&lt;/code&gt; for a full replacement; use the shared filename instead when the branch intentionally overrides the shared article.&lt;/p&gt; 
&lt;p&gt;For example, &lt;code&gt;main&lt;/code&gt; can provide a shared &lt;code&gt;workflow.prompt&lt;/code&gt;, while &lt;code&gt;six-pack&lt;/code&gt; can add &lt;code&gt;local-workflow.prompt&lt;/code&gt; for QA-specific handoff behavior. If a branch needs to replace the shared workflow article completely, it can commit its own &lt;code&gt;workflow.prompt&lt;/code&gt;; startup will treat that local file as an override and will not copy the shared one over it.&lt;/p&gt; 
&lt;h2&gt;Roles&lt;/h2&gt; 
&lt;p&gt;Each role in &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt; maps to a corresponding &lt;code&gt;swarmforge/roles/&amp;lt;role&amp;gt;.prompt&lt;/code&gt; file.&lt;/p&gt; 
&lt;h2&gt;How It Works&lt;/h2&gt; 
&lt;p&gt;In a runnable branch:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;SwarmForge reads &lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;The root &lt;code&gt;./swarm&lt;/code&gt; wrapper copies shared helper scripts, terminal adapters, and shared constitution articles from the &lt;code&gt;main&lt;/code&gt; branch when they are not already present.&lt;/li&gt; 
 &lt;li&gt;Startup installs missing shared constitution articles into &lt;code&gt;swarmforge/constitution/articles/&lt;/code&gt;, skipping any local article file that already exists.&lt;/li&gt; 
 &lt;li&gt;Startup validates the configured role prompts, helper scripts, and terminal adapters.&lt;/li&gt; 
 &lt;li&gt;If the target directory is not already a git repository, startup initializes one and creates the first commit.&lt;/li&gt; 
 &lt;li&gt;Startup creates one git worktree per configured role under &lt;code&gt;.worktrees/&lt;/code&gt;, unless the role is assigned to &lt;code&gt;master&lt;/code&gt; or &lt;code&gt;none&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Startup syncs &lt;code&gt;swarmforge/scripts/&lt;/code&gt; and missing shared constitution articles into each role worktree and puts that local scripts directory on each agent&#39;s &lt;code&gt;PATH&lt;/code&gt;, so agents use local handoff helpers without reaching back into the master checkout.&lt;/li&gt; 
 &lt;li&gt;SwarmForge creates tmux sessions, opens terminal windows, and launches each configured backend in its assigned worktree.&lt;/li&gt; 
 &lt;li&gt;Startup starts an OS-specific sleep inhibitor when one is available, and cleanup stops it with the swarm.&lt;/li&gt; 
 &lt;li&gt;Roles communicate through daemon-delivered handoff files. Agents create validated drafts with &lt;code&gt;swarm_handoff.sh&lt;/code&gt;, accept work with &lt;code&gt;ready_for_next.sh&lt;/code&gt;, and complete work with &lt;code&gt;done_with_current.sh&lt;/code&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Handoff Protocol&lt;/h2&gt; 
&lt;p&gt;Startup syncs the shared helper scripts into every role worktree under &lt;code&gt;swarmforge/scripts/&lt;/code&gt; and puts that local directory on the agent&#39;s &lt;code&gt;PATH&lt;/code&gt;. Agents do not send tmux messages directly. The launcher starts &lt;code&gt;handoffd.bb&lt;/code&gt;, which owns tmux socket access, watches each agent outbox, copies validated handoff files into recipient inboxes, and sends only generic wake-up notifications.&lt;/p&gt; 
&lt;p&gt;Agents interact with handoffs through three helper scripts:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;swarm_handoff.sh &amp;lt;draft-file&amp;gt;&lt;/code&gt; validates and queues outbound handoffs.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;ready_for_next.sh&lt;/code&gt; accepts work using the role&#39;s configured receive mode.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;done_with_current.sh&lt;/code&gt; completes the current task or batch using the role&#39;s configured receive mode.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Outbound drafts use one of two message types. A git handoff points the recipient at a committed state. The commit abbreviation must be exactly 10 hexadecimal characters; &lt;code&gt;swarm_handoff.sh&lt;/code&gt; validates that it resolves to a single commit and canonicalizes it before queuing the handoff.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;type: git_handoff
to: &amp;lt;role&amp;gt;[,&amp;lt;role&amp;gt;...]
priority: NN
task: &amp;lt;short-stable-task-name&amp;gt;
commit: &amp;lt;10-character-commit-abbrev&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;A note is one short freeform message:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;type: note
to: &amp;lt;role&amp;gt;[,&amp;lt;role&amp;gt;...]
priority: NN
message: &amp;lt;one line, max 80 chars&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The helper generates the delivered payload. Agents do not write long handoff bodies, branch names, queue filenames, or tmux commands.&lt;/p&gt; 
&lt;p&gt;Recipient agents run &lt;code&gt;ready_for_next.sh&lt;/code&gt; when notified or after restart. It dispatches to the task or batch helper configured for that role. If it prints &lt;code&gt;NO_TASK&lt;/code&gt;, they stop waiting for work. If it prints &lt;code&gt;TASK: &amp;lt;path&amp;gt;&lt;/code&gt;, they treat the printed &lt;code&gt;TASK_NAME&lt;/code&gt; and &lt;code&gt;PAYLOAD&lt;/code&gt; as the task. If it prints &lt;code&gt;BATCH: &amp;lt;path&amp;gt;&lt;/code&gt;, they process the printed &lt;code&gt;BATCH_ITEM&lt;/code&gt; entries in helper-delivered order. If a wake-up arrives while an agent is already working, it can ignore the wake-up; &lt;code&gt;done_with_current.sh&lt;/code&gt; checks for the next task or batch after completing the current work.&lt;/p&gt; 
&lt;p&gt;The durable handoff files and lifecycle headers replace the old logbook and resend queue. Runtime handoff state lives under &lt;code&gt;.swarmforge/handoffs/&lt;/code&gt; in each worktree, with &lt;code&gt;outbox&lt;/code&gt;, &lt;code&gt;sent&lt;/code&gt;, &lt;code&gt;failed&lt;/code&gt;, and &lt;code&gt;inbox&lt;/code&gt; subdirectories. Agents should not hand-edit, merge, stage, or commit handoff runtime state. See &lt;a href=&quot;https://raw.githubusercontent.com/unclebob/swarm-forge/main/swarmforge/handoff-protocol.md&quot;&gt;swarmforge/handoff-protocol.md&lt;/a&gt; for the full protocol.&lt;/p&gt; 
&lt;h2&gt;The &lt;code&gt;swarmforge.conf&lt;/code&gt; File&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;swarmforge/swarmforge.conf&lt;/code&gt; defines the swarm window-by-window. Each line has this form:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-conf&quot;&gt;window &amp;lt;role&amp;gt; &amp;lt;agent&amp;gt; &amp;lt;worktree&amp;gt; [task|batch] [extra-cli-args...]
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The optional receive mode defaults to &lt;code&gt;task&lt;/code&gt;. Use &lt;code&gt;batch&lt;/code&gt; for roles that should consume all currently queued equal-priority handoffs as one batch.&lt;/p&gt; 
&lt;p&gt;Any fields after the receive mode are passed directly to the agent CLI as additional arguments. If you omit the receive mode, extra arguments may start at the fifth field:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-conf&quot;&gt;window coder copilot wt-coder --yolo
window architect claude wt-arch task --dangerously-skip-permissions
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You can define as many windows as your project needs. Each &lt;code&gt;role&lt;/code&gt; maps to a corresponding prompt file at &lt;code&gt;swarmforge/roles/&amp;lt;role&amp;gt;.prompt&lt;/code&gt;, so a config containing &lt;code&gt;architect&lt;/code&gt;, &lt;code&gt;coder&lt;/code&gt;, &lt;code&gt;reviewer&lt;/code&gt;, &lt;code&gt;research&lt;/code&gt;, and &lt;code&gt;release&lt;/code&gt; windows would expect:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;swarmforge/roles/architect.prompt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;swarmforge/roles/coder.prompt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;swarmforge/roles/reviewer.prompt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;swarmforge/roles/research.prompt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;swarmforge/roles/release.prompt&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This lets each project choose its own swarm shape instead of being locked to a fixed set of roles.&lt;/p&gt; 
&lt;p&gt;Example config:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-conf&quot;&gt;window coordinator codex master
window coder codex coder
window refactorer codex refactorer
window architect codex architect
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;In the example above, the agents run in these worktrees:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;coordinator&lt;/code&gt; -&amp;gt; main working directory on &lt;code&gt;master&lt;/code&gt;, and is the cleanup window because it is listed first&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;coder&lt;/code&gt; -&amp;gt; &lt;code&gt;.worktrees/coder&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;refactorer&lt;/code&gt; -&amp;gt; &lt;code&gt;.worktrees/refactorer&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;architect&lt;/code&gt; -&amp;gt; &lt;code&gt;.worktrees/architect&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If a window uses &lt;code&gt;master&lt;/code&gt; as its worktree name, SwarmForge does not create &lt;code&gt;.worktrees/master&lt;/code&gt;; that role runs in the main working directory on the &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt; 
&lt;h2&gt;tmux Behavior&lt;/h2&gt; 
&lt;p&gt;SwarmForge uses a project-specific tmux socket recorded in &lt;code&gt;.swarmforge/tmux-socket&lt;/code&gt;, so each project swarm is isolated from other tmux sessions. It also honors tmux &lt;code&gt;base-index&lt;/code&gt; and &lt;code&gt;pane-base-index&lt;/code&gt; settings when launching agents and sending notifications, so configurations that number windows or panes from &lt;code&gt;1&lt;/code&gt; work without requiring users to change their tmux preferences.&lt;/p&gt; 
&lt;h2&gt;Terminal Behavior&lt;/h2&gt; 
&lt;p&gt;SwarmForge opens trackable terminal windows or tabs through a small terminal backend adapter.&lt;/p&gt; 
&lt;p&gt;Default detection:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;If AppleScript is available, SwarmForge opens macOS Terminal.app windows.&lt;/li&gt; 
 &lt;li&gt;Otherwise, if &lt;code&gt;wt.exe&lt;/code&gt; is available, SwarmForge opens Windows Terminal windows.&lt;/li&gt; 
 &lt;li&gt;Otherwise, SwarmForge attaches the cleanup tmux session in the current shell.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;After copying a runnable branch, set &lt;code&gt;SWARMFORGE_TERMINAL&lt;/code&gt; to override detection:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;SWARMFORGE_TERMINAL=ghostty ./swarm
SWARMFORGE_TERMINAL=terminal-app ./swarm
SWARMFORGE_TERMINAL=windows-terminal ./swarm
SWARMFORGE_TERMINAL=none ./swarm
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Use &lt;code&gt;ghostty&lt;/code&gt; when you want SwarmForge to open Ghostty tabs instead of the default Terminal.app windows. Use &lt;code&gt;windows-terminal&lt;/code&gt; when you want SwarmForge to open Windows Terminal windows from WSL. Use &lt;code&gt;none&lt;/code&gt; when you want SwarmForge to skip terminal automation and attach the cleanup tmux session in the current shell.&lt;/p&gt; 
&lt;h3&gt;Adding A Terminal Backend&lt;/h3&gt; 
&lt;p&gt;The shared terminal backends are carried on &lt;code&gt;main&lt;/code&gt; under &lt;code&gt;swarmforge/scripts/terminal-adapters/&lt;/code&gt;. Runnable branches copy those scripts at startup. To add a new backend, update &lt;code&gt;main&lt;/code&gt; by creating one file named after the backend:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;swarmforge/scripts/terminal-adapters/wezterm.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The file must define this small contract:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;terminal_backend_label() {
  echo &quot;WezTerm&quot;
}

terminal_backend_can_open_sessions() {
  return 0
}

terminal_backend_tracks_windows() {
  return 0
}

terminal_open_session() {
  local session=&quot;$1&quot;
  local title=&quot;$2&quot;
  local sibling_id=&quot;${3:-}&quot;

  # Open a terminal surface that runs:
  # cd &quot;$WORKING_DIR&quot; &amp;amp;&amp;amp; exec tmux -S &quot;$TMUX_SOCKET&quot; attach-session -t &quot;$session&quot;
  #
  # Print a stable window/tab id to stdout.
}

terminal_window_exists() {
  local window_id=&quot;$1&quot;

  # Return 0 if the id from terminal_open_session still exists.
  # Return nonzero otherwise.
}

terminal_close_window() {
  local window_id=&quot;$1&quot;

  # Close the id from terminal_open_session.
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If the terminal can open sessions but cannot return stable ids for open/check/close, keep &lt;code&gt;terminal_backend_can_open_sessions&lt;/code&gt; as &lt;code&gt;return 0&lt;/code&gt; and set &lt;code&gt;terminal_backend_tracks_windows&lt;/code&gt; to &lt;code&gt;return 1&lt;/code&gt;. SwarmForge will open one surface per session and skip the watchdog for that backend. &lt;code&gt;swarmforge/scripts/terminal-adapters/windows-terminal.sh&lt;/code&gt; is an example of this launch-only style.&lt;/p&gt; 
&lt;p&gt;If the backend cannot open sessions at all, set both capability functions to &lt;code&gt;return 1&lt;/code&gt;; SwarmForge will attach the cleanup tmux session in the current shell. Only edit &lt;code&gt;swarmforge/scripts/swarm-terminal-adapter.sh&lt;/code&gt; when adding aliases or changing default auto-detection.&lt;/p&gt; 
&lt;h2&gt;Window Behavior&lt;/h2&gt; 
&lt;p&gt;Each visible agent window is attached to a tmux session. That means terminal selection, copy, and paste may follow tmux and terminal-emulator rules rather than ordinary text-field behavior. If copy or paste feels unusual, check whether tmux copy mode is active before assuming the agent is stuck.&lt;/p&gt; 
&lt;p&gt;The first window in &lt;code&gt;swarmforge.conf&lt;/code&gt; is the cleanup window. Closing that top configured window is the intentional shutdown path: SwarmForge tears down the tmux sessions, closes the remaining tracked windows, and shuts down the swarm.&lt;/p&gt; 
&lt;p&gt;Closing any other tracked window is non-destructive. The watchdog reopens that window and attaches it back to the same tmux session, so the agent state and terminal history remain intact. This is often the simplest way to recover a window that has landed in an unfamiliar tmux mode or otherwise feels stuck.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>drawdb-io/drawdb</title>
      <link>https://github.com/drawdb-io/drawdb</link>
      <description>&lt;p&gt;Free, simple, and intuitive online database diagram editor and SQL generator.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;sup&gt;Special thanks to:&lt;/sup&gt; 
 &lt;br /&gt; 
 &lt;a href=&quot;https://www.warp.dev/drawdb/&quot; target=&quot;_blank&quot;&gt; &lt;img alt=&quot;Warp sponsorship&quot; width=&quot;280&quot; src=&quot;https://github.com/user-attachments/assets/c7f141e7-9751-407d-bb0e-d6f2c487b34f&quot; /&gt; &lt;br /&gt; &lt;b&gt;Next-gen AI-powered intelligent terminal for all platforms&lt;/b&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;br /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img width=&quot;64&quot; alt=&quot;drawDB logo&quot; src=&quot;https://raw.githubusercontent.com/drawdb-io/drawdb/main/src/assets/icon-dark.png&quot; /&gt; 
 &lt;h1&gt;drawDB&lt;/h1&gt; 
&lt;/div&gt; 
&lt;h3 align=&quot;center&quot;&gt;Free, simple, and intuitive database schema editor and SQL generator.&lt;/h3&gt; 
&lt;div align=&quot;center&quot; style=&quot;margin-bottom:12px;&quot;&gt; 
 &lt;a href=&quot;https://drawdb.app/&quot; style=&quot;display: flex; align-items: center;&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/Start%20building-grey&quot; alt=&quot;drawDB&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://discord.gg/BrjZgNrmR6&quot; style=&quot;display: flex; align-items: center;&quot;&gt; &lt;img src=&quot;https://img.shields.io/discord/1196658537208758412.svg?label=Join%20the%20Discord&amp;amp;logo=discord&quot; alt=&quot;Discord&quot; /&gt; &lt;/a&gt; 
 &lt;a href=&quot;https://x.com/drawDB_&quot; style=&quot;display: flex; align-items: center;&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/Follow%20us%20on%20X-blue?logo=X&quot; alt=&quot;Follow us on X&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h3 align=&quot;center&quot;&gt;&lt;img width=&quot;700&quot; style=&quot;border-radius:5px;&quot; alt=&quot;drawDB screenshot demo&quot; src=&quot;https://raw.githubusercontent.com/drawdb-io/drawdb/main/drawdb.png&quot; /&gt;&lt;/h3&gt; 
&lt;p&gt;DrawDB is a robust and user-friendly database entity relationship diagram (ERD) editor right in your browser. Build diagrams with a few clicks, export and import SQL scripts, generate migrations, customize your editor, and more without creating an account. See the full set of features on &lt;a href=&quot;https://drawdb.app/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Getting Started&lt;/h2&gt; 
&lt;h3&gt;Local Development&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Build&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/drawdb-io/drawdb
cd drawdb
npm install
npm run build
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Docker Build&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker build -t drawdb .
docker run -p 3000:80 drawdb
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you want to enable sharing, set up the &lt;a href=&quot;https://github.com/drawdb-io/drawdb-server&quot;&gt;server&lt;/a&gt; and environment variables according to &lt;code&gt;.env.sample&lt;/code&gt;. This is optional unless you need to share files.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Please see &lt;a href=&quot;https://raw.githubusercontent.com/drawdb-io/drawdb/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for guidelines on how to contribute to this project.&lt;/p&gt; 
&lt;h2&gt;Support&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Join discussions: &lt;a href=&quot;https://discord.gg/BrjZgNrmR6&quot;&gt;Discord&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
    </item>
    
    <item>
      <title>Comfy-Org/ComfyUI</title>
      <link>https://github.com/Comfy-Org/ComfyUI</link>
      <description>&lt;p&gt;The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;ComfyUI&lt;/h1&gt; 
 &lt;p&gt;&lt;strong&gt;The most powerful and modular AI engine for content creation.&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://www.comfy.org/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/ComfyOrg-4285F4?style=flat&quot; alt=&quot;Website&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.com/invite/comfyorg&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2Fcomfyorg%3Fwith_counts%3Dtrue&amp;amp;query=%24.approximate_member_count&amp;amp;logo=discord&amp;amp;logoColor=white&amp;amp;label=Discord&amp;amp;color=green&amp;amp;suffix=%20total&quot; alt=&quot;Dynamic JSON Badge&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://x.com/ComfyUI&quot;&gt;&lt;img src=&quot;https://img.shields.io/twitter/follow/ComfyUI&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://app.element.io/#/room/%23comfyui_space%3Amatrix.org&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Matrix-000000?style=flat&amp;amp;logo=matrix&amp;amp;logoColor=white&quot; alt=&quot;Matrix&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/comfyanonymous/ComfyUI?style=flat&amp;amp;sort=semver&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/release-date/comfyanonymous/ComfyUI?style=flat&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/comfyanonymous/ComfyUI/total?style=flat&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/comfyanonymous/ComfyUI/latest/total?style=flat&amp;amp;label=downloads%40latest&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;!-- Workaround to display total user from https://github.com/badges/shields/issues/4500#issuecomment-2060079995 --&gt; 
 &lt;img width=&quot;1590&quot; height=&quot;795&quot; alt=&quot;ComfyUI Screenshot&quot; src=&quot;https://github.com/user-attachments/assets/36e065e0-bfae-4456-8c7f-8369d5ea48a2&quot; /&gt; 
 &lt;br /&gt; 
&lt;/div&gt; 
&lt;p&gt;ComfyUI is the AI creation engine for visual professionals who demand control over every model, every parameter, and every output. Its powerful and modular node graph interface empowers creatives to generate images, videos, 3D models, audio, and more...&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;ComfyUI natively supports the latest open-source state of the art models.&lt;/li&gt; 
 &lt;li&gt;API nodes provide access to the best closed source models such as Nano Banana, Seedance, Hunyuan3D, etc.&lt;/li&gt; 
 &lt;li&gt;It is available on Windows, Linux, and macOS, locally with our &lt;a href=&quot;https://www.comfy.org/download&quot;&gt;desktop application&lt;/a&gt;, our &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#installing&quot;&gt;portable install&lt;/a&gt; or on our &lt;a href=&quot;https://www.comfy.org/cloud&quot;&gt;cloud&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;The most sophisticated workflows can be exposed through a simple UI thanks to App Mode.&lt;/li&gt; 
 &lt;li&gt;It integrates seamlessly into production pipelines with our API endpoints.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Get Started&lt;/h2&gt; 
&lt;h3&gt;Local&lt;/h3&gt; 
&lt;h4&gt;&lt;a href=&quot;https://www.comfy.org/download&quot;&gt;Desktop Application&lt;/a&gt;&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;The easiest way to get started.&lt;/li&gt; 
 &lt;li&gt;Available on Windows &amp;amp; macOS.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;&lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#installing&quot;&gt;Windows Portable Package&lt;/a&gt;&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Get the latest commits and completely portable.&lt;/li&gt; 
 &lt;li&gt;Available on Windows.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;&lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#manual-install-windows-linux&quot;&gt;Manual Install&lt;/a&gt;&lt;/h4&gt; 
&lt;p&gt;Supports all operating systems and GPU types (NVIDIA, AMD, Intel, Apple Silicon, Ascend).&lt;/p&gt; 
&lt;h3&gt;Cloud&lt;/h3&gt; 
&lt;h4&gt;&lt;a href=&quot;https://www.comfy.org/cloud&quot;&gt;Comfy Cloud&lt;/a&gt;&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Our official paid cloud version for those who can&#39;t afford local hardware.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Examples&lt;/h2&gt; 
&lt;p&gt;See what ComfyUI can do with the &lt;a href=&quot;https://comfy.org/workflows&quot;&gt;newer template workflows&lt;/a&gt; or old &lt;a href=&quot;https://comfyanonymous.github.io/ComfyUI_examples/&quot;&gt;example workflows&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;A visual node graph for building and reusing image, video, audio, 3D, and text workflows without code.&lt;/li&gt; 
 &lt;li&gt;Reusable subgraphs, workflow templates, App Mode, and a local API for integrating workflows into applications.&lt;/li&gt; 
 &lt;li&gt;Efficient local execution with asynchronous queueing, partial graph re-execution, smart VRAM and RAM management, model offloading, and support for quantized models.&lt;/li&gt; 
 &lt;li&gt;Broad native model support. This is a representative list; browse the &lt;a href=&quot;https://comfy.org/workflows/&quot;&gt;workflow library&lt;/a&gt; for maintained, ready-to-run templates. 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/tag/text-to-image/&quot;&gt;Image generation&lt;/a&gt;: Stable Diffusion 1.5, SDXL, SD3.5, Flux.1, Flux.2, Qwen Image, Z-Image, Hunyuan Image 2.1, HiDream, Lumina Image 2.0, Chroma, Anima, LongCat Image, Ideogram 4, Krea 2, MageFlow, Microsoft Lens, PixelDiT, Kandinsky 5, and Ernie Image.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/tag/image-edit/&quot;&gt;Image editing&lt;/a&gt;: Flux Kontext, Flux.2 Klein, Qwen Image Edit, HiDream E1.1 and O1, OmniGen2, Boogu, JoyImage Edit, MageFlow Edit, and LongCat Image Edit.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/tag/video-generation/&quot;&gt;Video generation&lt;/a&gt;: Wan 2.1 and 2.2, LTX-Video 2 and 2.3, HunyuanVideo 1.5, Kandinsky 5 Video, CogVideoX, Cosmos Predict2, Bernini-R, SCAIL 2, and Mochi.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/&quot;&gt;Audio and video generation&lt;/a&gt;: MiniMax H3 and LTX-AV.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/tag/text-to-audio/&quot;&gt;Audio generation&lt;/a&gt;: ACE-Step 1.5 and Stable Audio 3.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/&quot;&gt;3D and vision&lt;/a&gt;: Hunyuan3D 2.1, TripoSplat, SeedVR2, SUPIR, Depth Anything 3, MoGe, SAM 3 and 3.1, RT-DETRv4, and BiRefNet.&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://comfy.org/workflows/tag/text-generation/&quot;&gt;Text generation&lt;/a&gt;: Gemma 3 and 4, Qwen3, Qwen3.5, and Qwen3-VL, including multimodal inputs.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Load complete checkpoints or separate diffusion models, VAEs, text encoders, LoRAs, ControlNets, adapters, and upscalers from supported model formats.&lt;/li&gt; 
 &lt;li&gt;Built-in tools for inpainting, outpainting, reference conditioning, masks and compositing, model merging, upscaling, frame interpolation, segmentation, depth estimation, and media processing.&lt;/li&gt; 
 &lt;li&gt;Save and load workflows as JSON, or recover complete workflows and seeds from supported generated media.&lt;/li&gt; 
 &lt;li&gt;Runs fully offline: core does not download anything unless you request it. Use &lt;code&gt;--disable-api-nodes&lt;/code&gt; to disable the optional paid &lt;a href=&quot;https://docs.comfy.org/tutorials/api-nodes/overview&quot;&gt;Comfy API nodes&lt;/a&gt; and force all built-in functionality to stay offline.&lt;/li&gt; 
 &lt;li&gt;Extend ComfyUI with custom nodes&lt;/li&gt; 
 &lt;li&gt;Configure additional model locations with &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/extra_model_paths.yaml.example&quot;&gt;&lt;code&gt;extra_model_paths.yaml&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Release Process&lt;/h2&gt; 
&lt;p&gt;ComfyUI follows a weekly release cycle targeting Monday but this regularly changes because of model releases or large changes to the codebase. There are three interconnected repositories:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI&quot;&gt;ComfyUI Core&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Releases a new major stable version (e.g., v0.7.0) roughly every 2 weeks.&lt;/li&gt; 
   &lt;li&gt;Starting from v0.4.0 patch versions will be used for fixes backported onto the current stable release.&lt;/li&gt; 
   &lt;li&gt;Minor versions will be used for releases off the master branch.&lt;/li&gt; 
   &lt;li&gt;Patch versions may still be used for releases on the master branch in cases where a backport would not make sense.&lt;/li&gt; 
   &lt;li&gt;Commits outside of the stable release tags may be very unstable and break many custom nodes.&lt;/li&gt; 
   &lt;li&gt;Serves as the foundation for the desktop release&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Comfy-Org/Comfy-Desktop&quot;&gt;Comfy Desktop&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Builds a new release using the latest stable core version&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Comfy-Org/ComfyUI_frontend&quot;&gt;ComfyUI Frontend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Every 2+ weeks frontend updates are merged into the core repository&lt;/li&gt; 
   &lt;li&gt;Features are frozen for the upcoming core release&lt;/li&gt; 
   &lt;li&gt;Development continues for the next release cycle&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Shortcuts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Keybind&lt;/th&gt; 
   &lt;th&gt;Explanation&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Queue up current graph for generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Queue up current graph as first for generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Cancel current generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Z&lt;/code&gt;/&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Y&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Undo/Redo&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;S&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Save workflow&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;O&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Load workflow&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;A&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Select all nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Alt &lt;/code&gt;+ &lt;code&gt;C&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Collapse/uncollapse selected nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;M&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Mute/unmute selected nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;B&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Delete&lt;/code&gt;/&lt;code&gt;Backspace&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Delete selected nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Backspace&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Delete the current graph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Space&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Move the canvas around when held and moving the cursor&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt;/&lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;Click&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Add clicked node to selection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;C&lt;/code&gt;/&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;V&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Copy and paste selected nodes (without maintaining connections to outputs of unselected nodes)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;C&lt;/code&gt;/&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;V&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Copy and paste selected nodes (maintaining connections from outputs of unselected nodes to inputs of pasted nodes)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;Drag&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Move multiple selected nodes at the same time&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;D&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Load default graph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;+&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Canvas Zoom in&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;-&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Canvas Zoom out&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + LMB + Vertical drag&lt;/td&gt; 
   &lt;td&gt;Canvas Zoom in/out&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Pin/Unpin selected nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;G&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Group selected nodes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Q&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Toggle visibility of the queue&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;H&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Toggle visibility of history&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Refresh graph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;F&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Show/Hide menu&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;.&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Fit view to selection (Whole graph when nothing is selected)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Double-Click LMB&lt;/td&gt; 
   &lt;td&gt;Open node quick search palette&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Shift&lt;/code&gt; + Drag&lt;/td&gt; 
   &lt;td&gt;Move multiple wires at once&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Alt&lt;/code&gt; + LMB&lt;/td&gt; 
   &lt;td&gt;Disconnect all wires from clicked slot&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;code&gt;Ctrl&lt;/code&gt; can also be replaced with &lt;code&gt;Cmd&lt;/code&gt; instead for macOS users&lt;/p&gt; 
&lt;h1&gt;Installing&lt;/h1&gt; 
&lt;h2&gt;Windows and Mac&lt;/h2&gt; 
&lt;p&gt;We highly recommend using the &lt;a href=&quot;https://comfy.org/download&quot;&gt;desktop app&lt;/a&gt;:&lt;/p&gt; 
&lt;h3&gt;&lt;a href=&quot;https://comfy.org/download&quot;&gt;Link to Download&lt;/a&gt;&lt;/h3&gt; 
&lt;p&gt;The desktop app is the easiest and best way to use ComfyUI for new users.&lt;/p&gt; 
&lt;h2&gt;Windows Portable&lt;/h2&gt; 
&lt;p&gt;There is a portable standalone build for Windows that should work for running on Nvidia GPUs or for running on your CPU only. It is not recommended for regular users. Regular users should use the desktop app above.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases/latest/download/ComfyUI_windows_portable_nvidia.7z&quot;&gt;Direct link to download (nvidia)&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Simply download, extract with &lt;a href=&quot;https://7-zip.org&quot;&gt;7-Zip&lt;/a&gt; or with the windows explorer on recent windows versions and run. For smaller models you normally only need to put the checkpoints (the huge ckpt/safetensors files) in: ComfyUI\models\checkpoints but many of the larger models have multiple files. Make sure to follow the instructions to know which subfolder to put them in ComfyUI\models\&lt;/p&gt; 
&lt;p&gt;If you have trouble extracting it, right click the file -&amp;gt; properties -&amp;gt; unblock&lt;/p&gt; 
&lt;p&gt;The portable above currently comes with python 3.13 and pytorch cuda 13.0. Update your Nvidia drivers if it doesn&#39;t start.&lt;/p&gt; 
&lt;h4&gt;All Official Portable Downloads:&lt;/h4&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases/latest/download/ComfyUI_windows_portable_amd.7z&quot;&gt;Portable for AMD GPUs&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases/latest/download/ComfyUI_windows_portable_intel.7z&quot;&gt;Portable for Intel GPUs&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases/latest/download/ComfyUI_windows_portable_nvidia.7z&quot;&gt;Portable for Nvidia GPUs&lt;/a&gt; (supports 20 series and above).&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/releases/latest/download/ComfyUI_windows_portable_nvidia_cu126.7z&quot;&gt;Portable for Nvidia GPUs with pytorch cuda 12.6 and python 3.12&lt;/a&gt; (Supports Nvidia 10 series and older GPUs, DO NOT USE THIS ON NEWER 20 SERIES AND ABOVE GPUS).&lt;/p&gt; 
&lt;h4&gt;How do I share models between another UI and ComfyUI?&lt;/h4&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/extra_model_paths.yaml.example&quot;&gt;Config file&lt;/a&gt; to set the search paths for models. In the standalone windows build you can find this file in the ComfyUI directory. Rename this file to extra_model_paths.yaml and edit it with your favorite text editor.&lt;/p&gt; 
&lt;h2&gt;&lt;a href=&quot;https://docs.comfy.org/comfy-cli/getting-started&quot;&gt;comfy-cli&lt;/a&gt;&lt;/h2&gt; 
&lt;p&gt;You can install and start ComfyUI using comfy-cli:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install comfy-cli
comfy install
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Manual Install (Windows, Linux)&lt;/h2&gt; 
&lt;p&gt;Python 3.14 works but some custom nodes may have issues. The free threaded variant works but some dependencies will enable the GIL so it&#39;s not fully supported.&lt;/p&gt; 
&lt;p&gt;Python 3.13 is very well supported. If you have trouble with some custom node dependencies on 3.13 you can try 3.12&lt;/p&gt; 
&lt;p&gt;torch 2.7 is minimally supported but using a newer version is extremely recommended. Using a cu130 or above version of pytorch is required on Nvidia 20 series and above. Some features and optimizations might only work on newer versions. We generally recommend using the latest major version of pytorch with the latest cuda version unless it is less than 2 weeks old. If your pytorch is more than 6 months old, please update it.&lt;/p&gt; 
&lt;h3&gt;Instructions:&lt;/h3&gt; 
&lt;p&gt;Git clone this repo.&lt;/p&gt; 
&lt;p&gt;Put your SD checkpoints (the huge ckpt/safetensors files) in: models/checkpoints&lt;/p&gt; 
&lt;p&gt;Put your VAE in: models/vae&lt;/p&gt; 
&lt;h3&gt;AMD GPUs (Linux)&lt;/h3&gt; 
&lt;p&gt;AMD users can install rocm and pytorch with pip if you don&#39;t have it already installed, this is the command to install the stable version:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.2&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;This is the command to install the nightly with ROCm 7.2 which might have some performance improvements:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm7.2&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;AMD GPUs (Experimental: Windows and Linux), RDNA 3, 3.5 and 4 only.&lt;/h3&gt; 
&lt;p&gt;These have less hardware support than the builds above but they work on windows. You also need to install the pytorch version specific to your hardware.&lt;/p&gt; 
&lt;p&gt;RDNA 3 (RX 7000 series):&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;RDNA 3.5 (Strix halo/Ryzen AI Max+ 365):&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://rocm.nightlies.amd.com/v2/gfx1151/&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;RDNA 4 (RX 9000 series):&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://rocm.nightlies.amd.com/v2/gfx120X-all/&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;Intel GPUs (Windows and Linux)&lt;/h3&gt; 
&lt;p&gt;Intel Arc GPU users can install native PyTorch with torch.xpu support using pip. More information can be found &lt;a href=&quot;https://pytorch.org/docs/main/notes/get_start_xpu.html&quot;&gt;here&lt;/a&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;To install PyTorch xpu, use the following command:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;code&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;This is the command to install the Pytorch xpu nightly which might have some performance improvements:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;NVIDIA&lt;/h3&gt; 
&lt;p&gt;Nvidia users should install stable pytorch using this command:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;This is the command to install pytorch nightly instead which might have performance improvements.&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu132&lt;/code&gt;&lt;/p&gt; 
&lt;h4&gt;Troubleshooting&lt;/h4&gt; 
&lt;p&gt;If you get the &quot;Torch not compiled with CUDA enabled&quot; error, uninstall torch with:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip uninstall torch&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;And install it again with the command above.&lt;/p&gt; 
&lt;h3&gt;Dependencies&lt;/h3&gt; 
&lt;p&gt;Install the dependencies by opening your terminal inside the ComfyUI folder and:&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;After this you should have everything installed and can proceed to running ComfyUI.&lt;/p&gt; 
&lt;h3&gt;Others:&lt;/h3&gt; 
&lt;h4&gt;Apple Mac silicon&lt;/h4&gt; 
&lt;p&gt;You can install ComfyUI in Apple Mac silicon (M1, M2, M3 or M4) with any recent macOS version.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Install pytorch nightly. For instructions, read the &lt;a href=&quot;https://developer.apple.com/metal/pytorch/&quot;&gt;Accelerated PyTorch training on Mac&lt;/a&gt; Apple Developer guide (make sure to install the latest pytorch nightly).&lt;/li&gt; 
 &lt;li&gt;Follow the &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#manual-install-windows-linux&quot;&gt;ComfyUI manual installation&lt;/a&gt; instructions for Windows and Linux.&lt;/li&gt; 
 &lt;li&gt;Install the ComfyUI &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#dependencies&quot;&gt;dependencies&lt;/a&gt;. If you have another Stable Diffusion UI &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#i-already-have-another-ui-for-stable-diffusion-installed-do-i-really-have-to-install-all-of-these-dependencies&quot;&gt;you might be able to reuse the dependencies&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Launch ComfyUI by running &lt;code&gt;python main.py&lt;/code&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Remember to add your models, VAE, LoRAs etc. to the corresponding Comfy folders, as discussed in &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#manual-install-windows-linux&quot;&gt;ComfyUI manual installation&lt;/a&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h4&gt;Ascend NPUs&lt;/h4&gt; 
&lt;p&gt;For models compatible with Ascend Extension for PyTorch (torch_npu). To get started, ensure your environment meets the prerequisites outlined on the &lt;a href=&quot;https://ascend.github.io/docs/sources/ascend/quick_install.html&quot;&gt;installation&lt;/a&gt; page. Here&#39;s a step-by-step guide tailored to your platform and installation method:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Begin by installing the recommended or newer kernel version for Linux as specified in the Installation page of torch-npu, if necessary.&lt;/li&gt; 
 &lt;li&gt;Proceed with the installation of Ascend Basekit, which includes the driver, firmware, and CANN, following the instructions provided for your specific platform.&lt;/li&gt; 
 &lt;li&gt;Next, install the necessary packages for torch-npu by adhering to the platform-specific instructions on the &lt;a href=&quot;https://ascend.github.io/docs/sources/pytorch/install.html#pytorch&quot;&gt;Installation&lt;/a&gt; page.&lt;/li&gt; 
 &lt;li&gt;Finally, adhere to the &lt;a href=&quot;https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/#manual-install-windows-linux&quot;&gt;ComfyUI manual installation&lt;/a&gt; guide for Linux. Once all components are installed, you can run ComfyUI as described earlier.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Cambricon MLUs&lt;/h4&gt; 
&lt;p&gt;For models compatible with Cambricon Extension for PyTorch (torch_mlu). Here&#39;s a step-by-step guide tailored to your platform and installation method:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Install the Cambricon CNToolkit by adhering to the platform-specific instructions on the &lt;a href=&quot;https://www.cambricon.com/docs/sdk_1.15.0/cntoolkit_3.7.2/cntoolkit_install_3.7.2/index.html&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Next, install the PyTorch(torch_mlu) following the instructions on the &lt;a href=&quot;https://www.cambricon.com/docs/sdk_1.15.0/cambricon_pytorch_1.17.0/user_guide_1.9/index.html&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Launch ComfyUI by running &lt;code&gt;python main.py&lt;/code&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Iluvatar Corex&lt;/h4&gt; 
&lt;p&gt;For models compatible with Iluvatar Extension for PyTorch. Here&#39;s a step-by-step guide tailored to your platform and installation method:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Install the Iluvatar Corex Toolkit by adhering to the platform-specific instructions on the &lt;a href=&quot;https://support.iluvatar.com/#/DocumentCentre?id=1&amp;amp;nameCenter=2&amp;amp;productId=520117912052801536&quot;&gt;Installation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Launch ComfyUI by running &lt;code&gt;python main.py&lt;/code&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;&lt;a href=&quot;https://github.com/Comfy-Org/ComfyUI-Manager/tree/manager-v4&quot;&gt;ComfyUI-Manager&lt;/a&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;ComfyUI-Manager&lt;/strong&gt; is an extension that allows you to easily install, update, and manage custom nodes for ComfyUI.&lt;/p&gt; 
&lt;h3&gt;Setup&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Install the manager dependencies:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install -r manager_requirements.txt
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Enable the manager with the &lt;code&gt;--enable-manager&lt;/code&gt; flag when running ComfyUI:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python main.py --enable-manager
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Command Line Options&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Flag&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--enable-manager&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enable ComfyUI-Manager&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--enable-manager-legacy-ui&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Use the legacy manager UI instead of the new UI (implies &lt;code&gt;--enable-manager&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--disable-manager-ui&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disable the manager UI and endpoints while keeping background features like security checks and scheduled installation completion (requires &lt;code&gt;--enable-manager&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h1&gt;Running&lt;/h1&gt; 
&lt;p&gt;&lt;code&gt;python main.py&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;For AMD cards not officially supported by ROCm&lt;/h3&gt; 
&lt;p&gt;Try running it with this command if you have issues:&lt;/p&gt; 
&lt;p&gt;For 6700, 6600 and maybe other RDNA2 or older: &lt;code&gt;HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;For AMD 7600 and maybe other RDNA3 cards: &lt;code&gt;HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;AMD ROCm Tips&lt;/h3&gt; 
&lt;p&gt;You can try setting this env variable &lt;code&gt;PYTORCH_TUNABLEOP_ENABLED=1&lt;/code&gt; which might speed things up at the cost of a very slow initial run.&lt;/p&gt; 
&lt;h1&gt;Notes&lt;/h1&gt; 
&lt;p&gt;Only parts of the graph that have an output with all the correct inputs will be executed.&lt;/p&gt; 
&lt;p&gt;Only parts of the graph that change from each execution to the next will be executed, if you submit the same graph twice only the first will be executed. If you change the last part of the graph only the part you changed and the part that depends on it will be executed.&lt;/p&gt; 
&lt;p&gt;Dragging a generated png on the webpage or loading one will give you the full workflow including seeds that were used to create it.&lt;/p&gt; 
&lt;p&gt;You can use () to change emphasis of a word or phrase like: (good code:1.2) or (bad code:0.8). The default emphasis for () is 1.1. To use () characters in your actual prompt escape them like \( or \).&lt;/p&gt; 
&lt;p&gt;You can use {day|night}, for wildcard/dynamic prompts. With this syntax &quot;{wild|card|test}&quot; will be randomly replaced by either &quot;wild&quot;, &quot;card&quot; or &quot;test&quot; by the frontend every time you queue the prompt. To use {} characters in your actual prompt escape them like: \{ or \}.&lt;/p&gt; 
&lt;p&gt;Dynamic prompts also support C-style comments, like &lt;code&gt;// comment&lt;/code&gt; or &lt;code&gt;/* comment */&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;To use a textual inversion concepts/embeddings in a text prompt put them in the models/embeddings directory and use them in the CLIPTextEncode node like this (you can omit the .pt extension):&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;embedding:embedding_filename.pt&lt;/code&gt;&lt;/p&gt; 
&lt;h2&gt;How to show high-quality previews?&lt;/h2&gt; 
&lt;p&gt;Use &lt;code&gt;--preview-method auto&lt;/code&gt; to enable previews.&lt;/p&gt; 
&lt;p&gt;The default installation includes a fast latent preview method that&#39;s low-resolution. To enable higher-quality previews with &lt;a href=&quot;https://github.com/madebyollin/taesd&quot;&gt;TAESD&lt;/a&gt;, download the &lt;a href=&quot;https://github.com/madebyollin/taesd/&quot;&gt;taesd_decoder.pth, taesdxl_decoder.pth, taesd3_decoder.pth and taef1_decoder.pth&lt;/a&gt; and place them in the &lt;code&gt;models/vae_approx&lt;/code&gt; folder. Once they&#39;re installed, restart ComfyUI and launch it with &lt;code&gt;--preview-method taesd&lt;/code&gt; to enable high-quality previews.&lt;/p&gt; 
&lt;h2&gt;How to use TLS/SSL?&lt;/h2&gt; 
&lt;p&gt;Generate a self-signed certificate (not appropriate for shared/production use) and key by running the command: &lt;code&gt;openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj &quot;/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname&quot;&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;Use &lt;code&gt;--tls-keyfile key.pem --tls-certfile cert.pem&lt;/code&gt; to enable TLS/SSL, the app will now be accessible with &lt;code&gt;https://...&lt;/code&gt; instead of &lt;code&gt;http://...&lt;/code&gt;.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note: Windows users can use &lt;a href=&quot;https://github.com/alexisrolland/docker-openssl&quot;&gt;alexisrolland/docker-openssl&lt;/a&gt; or one of the &lt;a href=&quot;https://wiki.openssl.org/index.php/Binaries&quot;&gt;3rd party binary distributions&lt;/a&gt; to run the command example above. &lt;br /&gt;&lt;br /&gt;If you use a container, note that the volume mount &lt;code&gt;-v&lt;/code&gt; can be a relative path so &lt;code&gt;... -v &quot;.\:/openssl-certs&quot; ...&lt;/code&gt; would create the key &amp;amp; cert files in the current directory of your command prompt or powershell terminal.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Support and dev channel&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://comfy.org/discord&quot;&gt;Discord&lt;/a&gt;: Try the #help or #feedback channels.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://app.element.io/#/room/%23comfyui_space%3Amatrix.org&quot;&gt;Matrix space: #comfyui_space:matrix.org&lt;/a&gt; (it&#39;s like discord but open source).&lt;/p&gt; 
&lt;p&gt;See also: &lt;a href=&quot;https://www.comfy.org/&quot;&gt;https://www.comfy.org/&lt;/a&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;em&gt;psst — we&#39;re hiring!&lt;/em&gt; Help build ComfyUI: &lt;a href=&quot;https://www.comfy.org/careers&quot;&gt;comfy.org/careers&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Frontend Development&lt;/h2&gt; 
&lt;p&gt;As of August 15, 2024, we have transitioned to a new frontend, which is now hosted in a separate repository: &lt;a href=&quot;https://github.com/Comfy-Org/ComfyUI_frontend&quot;&gt;ComfyUI Frontend&lt;/a&gt;. The compiled JS files (from TS/Vue) are published to &lt;a href=&quot;https://pypi.org/project/comfyui-frontend-package&quot;&gt;pypi&lt;/a&gt; and installed as a dependency in ComfyUI.&lt;/p&gt; 
&lt;h3&gt;Reporting Issues and Requesting Features&lt;/h3&gt; 
&lt;p&gt;For any bugs, issues, or feature requests related to the frontend, please use the &lt;a href=&quot;https://github.com/Comfy-Org/ComfyUI_frontend&quot;&gt;ComfyUI Frontend repository&lt;/a&gt;. This will help us manage and address frontend-specific concerns more efficiently.&lt;/p&gt; 
&lt;h3&gt;Using the Latest Frontend&lt;/h3&gt; 
&lt;p&gt;The new frontend is now the default for ComfyUI. However, please note:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;The frontend in the main ComfyUI repository is updated fortnightly.&lt;/li&gt; 
 &lt;li&gt;Daily releases are available in the separate frontend repository.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;To use the most up-to-date frontend version:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;For the latest daily release, launch ComfyUI with this command line argument:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;--front-end-version Comfy-Org/ComfyUI_frontend@latest
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;For a specific version, replace &lt;code&gt;latest&lt;/code&gt; with the desired version number:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;--front-end-version Comfy-Org/ComfyUI_frontend@1.2.2
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;This approach allows you to easily switch between the stable fortnightly release and the cutting-edge daily updates, or even specific versions for testing purposes.&lt;/p&gt; 
&lt;h1&gt;QA&lt;/h1&gt; 
&lt;h3&gt;Which GPU should I buy for this?&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/comfyanonymous/ComfyUI/wiki/Which-GPU-should-I-buy-for-ComfyUI&quot;&gt;See this page for some recommendations&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>lyogavin/airllm</title>
      <link>https://github.com/lyogavin/airllm</link>
      <description>&lt;p&gt;AirLLM 70B inference with single 4GB GPU&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;img src=&quot;https://github.com/lyogavin/airllm/raw/main/assets/airllm_logo_sm.png?v=3&amp;amp;raw=true&quot; alt=&quot;airllm_logo&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#quickstart&quot;&gt;&lt;strong&gt;Quickstart&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#configurations&quot;&gt;&lt;strong&gt;Configurations&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#macos&quot;&gt;&lt;strong&gt;MacOS&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#example-python-notebook&quot;&gt;&lt;strong&gt;Example notebooks&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#faq&quot;&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;AirLLM&lt;/strong&gt; dramatically reduces inference memory usage, letting 70B large language models run on a single 4GB GPU card — without quantization, distillation, or pruning. You can even run &lt;strong&gt;405B Llama 3.1&lt;/strong&gt; on &lt;strong&gt;8GB&lt;/strong&gt;, &lt;strong&gt;DeepSeek-V3 (671B)&lt;/strong&gt; on &lt;strong&gt;~12GB&lt;/strong&gt;, and &lt;strong&gt;Kimi K3 (2.8T)&lt;/strong&gt; — the largest open-source model released to date — on &lt;strong&gt;under 4GB&lt;/strong&gt;, because sparse MoE models stream one expert at a time rather than a whole layer.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/lyogavin/airllm/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/lyogavin/airllm?style=social&quot; alt=&quot;GitHub Repo stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pepy.tech/project/airllm&quot;&gt;&lt;img src=&quot;https://static.pepy.tech/personalized-badge/airllm?period=total&amp;amp;units=international_system&amp;amp;left_color=grey&amp;amp;right_color=blue&amp;amp;left_text=downloads&quot; alt=&quot;Downloads&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/LianjiaTech/BELLE/raw/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Code%20License-Apache_2.0-green.svg?sanitize=true&quot; alt=&quot;Code License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://static.aicompose.cn/static/wecom_barcode.png?t=1671918938&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/wechat-Anima-brightgreen?logo=wechat&quot; alt=&quot;Generic badge&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/2xffU5sn&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/1175437549783760896?logo=discord&amp;amp;color=7289da&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://pypi.org/project/airllm/&quot;&gt;&lt;img src=&quot;https://img.shields.io/pypi/format/airllm?logo=pypi&amp;amp;color=3571a3&quot; alt=&quot;PyPI - AirLLM&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://medium.com/@lyo.gavin&quot;&gt;&lt;img src=&quot;https://img.shields.io/website?up_message=blog&amp;amp;url=https%3A%2F%2Fmedium.com%2F%40lyo.gavin&amp;amp;logo=medium&amp;amp;color=black&quot; alt=&quot;Website&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://gavinliblog.com&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Gavin_Li-Blog-blue&quot; alt=&quot;Website&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://patreon.com/gavinli&quot;&gt;&lt;img src=&quot;https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dgavinli%26type%3Dpatrons&amp;amp;style=flat&quot; alt=&quot;Support me on Patreon&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/sponsors/lyogavin&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/sponsors/lyogavin?logo=GitHub&amp;amp;color=lightgray&quot; alt=&quot;GitHub Sponsors&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;AI Agents Recommendation:&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://godmodeai.co&quot;&gt;Best AI Game Sprite Generator&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://crazyfaceai.com&quot;&gt;Best AI Facial Expression Editor&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://bloome.im/app?ref=G6BYnov0&amp;amp;utm_medium=github&amp;amp;utm_source=lyogavin-airllm-ivor-202606&quot;&gt;Bloome — build &amp;amp; run AI agent teams in the cloud, zero setup&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Updates&lt;/h2&gt; 
&lt;p&gt;[2026/07] &lt;strong&gt;Kimi K3 (2.8T)&lt;/strong&gt; support: the largest open-source model runs on a single card in &lt;strong&gt;3.72GB&lt;/strong&gt; of VRAM, measured end to end on one RTX 6000 Ada. Per-expert streaming loads only the experts a token actually routes to. K3 brings three requirements of its own: &lt;code&gt;pip install compressed-tensors flash-attn&lt;/code&gt; (its model code mandates flash attention regardless of what you request), a CUDA 12 build of torch, since no prebuilt flash-attn wheel exists for CUDA 13 yet, and &lt;code&gt;transformers&lt;/code&gt; 4.56.x, as its remote code does not load on 5.x.&lt;/p&gt; 
&lt;p&gt;[2026/06] &lt;strong&gt;v3.0&lt;/strong&gt;: FP8 model support + the latest models. Run &lt;strong&gt;DeepSeek-V3 (671B) on ~12GB&lt;/strong&gt; and &lt;strong&gt;Qwen3-235B on ~3GB&lt;/strong&gt;, plus Qwen3, Llama 3.x/4, DeepSeek V2/V3, Phi-4, Gemma and more — all through a single &lt;code&gt;AutoModel&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;[2024/08/20] v2.11.0: Support Qwen2.5&lt;/p&gt; 
&lt;p&gt;[2024/08/18] v2.10.1 Support CPU inference. Support non sharded models. Thanks @NavodPeiris for the great work!&lt;/p&gt; 
&lt;p&gt;[2024/07/30] Support Llama3.1 &lt;strong&gt;405B&lt;/strong&gt; (&lt;a href=&quot;https://colab.research.google.com/github/lyogavin/airllm/blob/main/air_llm/examples/run_llama3.1_405B.ipynb&quot;&gt;example notebook&lt;/a&gt;). Support &lt;strong&gt;8bit/4bit quantization&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;[2024/04/20] AirLLM supports Llama3 natively already. Run Llama3 70B on 4GB single GPU.&lt;/p&gt; 
&lt;p&gt;[2023/12/25] v2.8.2: Support MacOS running 70B large language models.&lt;/p&gt; 
&lt;p&gt;[2023/12/20] v2.7: Support AirLLMMixtral.&lt;/p&gt; 
&lt;p&gt;[2023/12/20] v2.6: Added AutoModel, automatically detect model type, no need to provide model class to initialize model.&lt;/p&gt; 
&lt;p&gt;[2023/12/18] v2.5: added prefetching to overlap the model loading and compute. 10% speed improvement.&lt;/p&gt; 
&lt;p&gt;[2023/12/03] added support of &lt;strong&gt;ChatGLM&lt;/strong&gt;, &lt;strong&gt;QWen&lt;/strong&gt;, &lt;strong&gt;Baichuan&lt;/strong&gt;, &lt;strong&gt;Mistral&lt;/strong&gt;, &lt;strong&gt;InternLM&lt;/strong&gt;!&lt;/p&gt; 
&lt;p&gt;[2023/12/02] added support for safetensors. Now support all top 10 models in open llm leaderboard.&lt;/p&gt; 
&lt;p&gt;[2023/12/01] airllm 2.0. Support compressions: &lt;strong&gt;3x run time speed up!&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;[2023/11/20] airllm Initial version!&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://star-history.com/#lyogavin/airllm&amp;amp;Timeline&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;assets/star-history-dark.png&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/assets/star-history.png&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#quickstart&quot;&gt;Quick start&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#model-compression---3x-inference-speed-up&quot;&gt;Model Compression&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#configurations&quot;&gt;Configurations&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#macos&quot;&gt;Run on MacOS&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#example-python-notebook&quot;&gt;Example notebooks&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#supported-models&quot;&gt;Supported Models&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#acknowledgement&quot;&gt;Acknowledgement&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#faq&quot;&gt;FAQ&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Quickstart&lt;/h2&gt; 
&lt;h3&gt;1. Install package&lt;/h3&gt; 
&lt;p&gt;First, install the airllm pip package.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install airllm
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;2. Inference&lt;/h3&gt; 
&lt;p&gt;Then, initialize AirLLMLlama2, pass in the huggingface repo ID of the model being used, or the local path, and inference can be performed similar to a regular transformer model.&lt;/p&gt; 
&lt;p&gt;(&lt;em&gt;You can also specify the path to save the splitted layered model through &lt;strong&gt;layer_shards_saving_path&lt;/strong&gt; when init AirLLMLlama2.&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel

MAX_LENGTH = 128
# just pass a hugging face repo id — works with almost any popular model:
model = AutoModel.from_pretrained(&quot;Qwen/Qwen3-32B&quot;)

# go bigger with the exact same one line:
#model = AutoModel.from_pretrained(&quot;Qwen/Qwen3-235B-A22B&quot;)     # 235B, runs in ~3GB
#model = AutoModel.from_pretrained(&quot;deepseek-ai/DeepSeek-V3&quot;)  # 671B, runs in ~12GB

# or use a model&#39;s local path...
#model = AutoModel.from_pretrained(&quot;/home/ubuntu/.cache/huggingface/hub/models--Qwen--Qwen3-32B/snapshots/...&quot;)

input_text = [
        &#39;What is the capital of United States?&#39;,
        #&#39;I like&#39;,
    ]

input_tokens = model.tokenizer(input_text,
    return_tensors=&quot;pt&quot;, 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH, 
    padding=False)
           
generation_output = model.generate(
    input_tokens[&#39;input_ids&#39;].cuda(), 
    max_new_tokens=20,
    use_cache=True,
    return_dict_in_generate=True)

output = model.tokenizer.decode(generation_output.sequences[0])

print(output)

&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Note: During inference, the original model will first be decomposed and saved layer-wise. Please ensure there is sufficient disk space in the huggingface cache directory.&lt;/p&gt; 
&lt;h2&gt;Model Compression - 3x Inference Speed Up!&lt;/h2&gt; 
&lt;p&gt;We just added model compression based on block-wise quantization-based model compression. Which can further &lt;strong&gt;speed up the inference speed&lt;/strong&gt; for up to &lt;strong&gt;3x&lt;/strong&gt; , with &lt;strong&gt;almost ignorable accuracy loss!&lt;/strong&gt; (see more performance evaluation and why we use block-wise quantization in &lt;a href=&quot;https://arxiv.org/abs/2212.09720&quot;&gt;this paper&lt;/a&gt;)&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/lyogavin/airllm/raw/main/assets/airllm2_time_improvement.png?v=2&amp;amp;raw=true&quot; alt=&quot;speed_improvement&quot; /&gt;&lt;/p&gt; 
&lt;h4&gt;How to enable model compression speed up:&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Step 1. make sure you have &lt;a href=&quot;https://github.com/TimDettmers/bitsandbytes&quot;&gt;bitsandbytes&lt;/a&gt; installed by &lt;code&gt;pip install -U bitsandbytes &lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Step 2. make sure airllm verion later than 2.0.0: &lt;code&gt;pip install -U airllm&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Step 3. when initialize the model, passing the argument compression (&#39;4bit&#39; or &#39;8bit&#39;):&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;model = AutoModel.from_pretrained(&quot;garage-bAInd/Platypus2-70B-instruct&quot;,
                     compression=&#39;4bit&#39; # specify &#39;8bit&#39; for 8-bit block-wise quantization 
                    )
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;What are the differences between model compression and quantization?&lt;/h4&gt; 
&lt;p&gt;Quantization normally needs to quantize both weights and activations to really speed things up. Which makes it harder to maintain accuracy and avoid the impact of outliers in all kinds of inputs.&lt;/p&gt; 
&lt;p&gt;While in our case the bottleneck is mainly at the disk loading, we only need to make the model loading size smaller. So, we get to only quantize the weights&#39; part, which is easier to ensure the accuracy.&lt;/p&gt; 
&lt;h2&gt;Configurations&lt;/h2&gt; 
&lt;p&gt;When initialize the model, we support the following configurations:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;compression&lt;/strong&gt;: supported options: 4bit, 8bit for 4-bit or 8-bit block-wise quantization, or by default None for no compression&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;profiling_mode&lt;/strong&gt;: supported options: True to output time consumptions or by default False&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;layer_shards_saving_path&lt;/strong&gt;: optionally another path to save the splitted model&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;hf_token&lt;/strong&gt;: huggingface token can be provided here if downloading gated models like: &lt;em&gt;meta-llama/Llama-2-7b-hf&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;prefetching&lt;/strong&gt;: prefetching to overlap the model loading and compute. By default, turned on. For now, only AirLLMLlama2 supports this.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;delete_original&lt;/strong&gt;: if you don&#39;t have too much disk space, you can set delete_original to true to delete the original downloaded hugging face model, only keep the transformed one to save half of the disk space.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;MacOS&lt;/h2&gt; 
&lt;p&gt;Just install airllm and run the code the same as on linux. See more in &lt;a href=&quot;https://raw.githubusercontent.com/lyogavin/airllm/main/#quickstart&quot;&gt;Quick Start&lt;/a&gt;.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;make sure you installed &lt;a href=&quot;https://github.com/ml-explore/mlx?tab=readme-ov-file#installation&quot;&gt;mlx&lt;/a&gt; and torch&lt;/li&gt; 
 &lt;li&gt;you probably need to install python native see more &lt;a href=&quot;https://stackoverflow.com/a/65432861/21230266&quot;&gt;here&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;only &lt;a href=&quot;https://support.apple.com/en-us/HT211814&quot;&gt;Apple silicon&lt;/a&gt; is supported&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Example [python notebook] (&lt;a href=&quot;https://github.com/lyogavin/airllm/raw/main/air_llm/examples/run_on_macos.ipynb&quot;&gt;https://github.com/lyogavin/airllm/blob/main/air_llm/examples/run_on_macos.ipynb&lt;/a&gt;)&lt;/p&gt; 
&lt;h2&gt;Example Python Notebook&lt;/h2&gt; 
&lt;p&gt;Example colabs here:&lt;/p&gt; 
&lt;a target=&quot;_blank&quot; href=&quot;https://colab.research.google.com/github/lyogavin/airllm/blob/main/air_llm/examples/run_all_types_of_models.ipynb&quot;&gt; &lt;img src=&quot;https://colab.research.google.com/assets/colab-badge.svg?sanitize=true&quot; alt=&quot;Open In Colab&quot; /&gt; &lt;/a&gt; 
&lt;h4&gt;example of other models (ChatGLM, QWen, Baichuan, Mistral, etc):&lt;/h4&gt; 
&lt;details&gt; 
 &lt;ul&gt; 
  &lt;li&gt;ChatGLM:&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained(&quot;THUDM/chatglm3-6b-base&quot;)
input_text = [&#39;What is the capital of China?&#39;,]
input_tokens = model.tokenizer(input_text,
    return_tensors=&quot;pt&quot;, 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH, 
    padding=True)
generation_output = model.generate(
    input_tokens[&#39;input_ids&#39;].cuda(), 
    max_new_tokens=5,
    use_cache= True,
    return_dict_in_generate=True)
model.tokenizer.decode(generation_output.sequences[0])
&lt;/code&gt;&lt;/pre&gt; 
 &lt;ul&gt; 
  &lt;li&gt;QWen:&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained(&quot;Qwen/Qwen-7B&quot;)
input_text = [&#39;What is the capital of China?&#39;,]
input_tokens = model.tokenizer(input_text,
    return_tensors=&quot;pt&quot;, 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH)
generation_output = model.generate(
    input_tokens[&#39;input_ids&#39;].cuda(), 
    max_new_tokens=5,
    use_cache=True,
    return_dict_in_generate=True)
model.tokenizer.decode(generation_output.sequences[0])
&lt;/code&gt;&lt;/pre&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Baichuan, InternLM, Mistral, etc:&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained(&quot;baichuan-inc/Baichuan2-7B-Base&quot;)
#model = AutoModel.from_pretrained(&quot;internlm/internlm-20b&quot;)
#model = AutoModel.from_pretrained(&quot;mistralai/Mistral-7B-Instruct-v0.1&quot;)
input_text = [&#39;What is the capital of China?&#39;,]
input_tokens = model.tokenizer(input_text,
    return_tensors=&quot;pt&quot;, 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH)
generation_output = model.generate(
    input_tokens[&#39;input_ids&#39;].cuda(), 
    max_new_tokens=5,
    use_cache=True,
    return_dict_in_generate=True)
model.tokenizer.decode(generation_output.sequences[0])
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;h4&gt;To request other model support: &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSe0Io9ANMT964Zi-OQOq1TJmnvP-G3_ZgQDhP7SatN0IEdbOg/viewform?usp=sf_link&quot;&gt;here&lt;/a&gt;&lt;/h4&gt; 
&lt;h2&gt;Supported Models&lt;/h2&gt; 
&lt;p&gt;AirLLM works out of the box with &lt;strong&gt;virtually every popular open LLM&lt;/strong&gt; — just pass its Hugging Face ID to &lt;code&gt;AutoModel.from_pretrained(...)&lt;/code&gt;. That covers all the major families:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Llama&lt;/strong&gt; (2 / 3 / 3.1 / 3.3 / 4) · &lt;strong&gt;Qwen&lt;/strong&gt; (1 / 2 / 2.5 / 3, including MoE and FP8) · &lt;strong&gt;DeepSeek&lt;/strong&gt; (V2 / V3 / R1) · &lt;strong&gt;Mistral &amp;amp; Mixtral&lt;/strong&gt; · &lt;strong&gt;Phi&lt;/strong&gt; · &lt;strong&gt;Gemma&lt;/strong&gt; · &lt;strong&gt;ChatGLM&lt;/strong&gt; · &lt;strong&gt;Baichuan&lt;/strong&gt; · &lt;strong&gt;InternLM&lt;/strong&gt; · &lt;strong&gt;Yi&lt;/strong&gt; — and most new models the day they&#39;re released.&lt;/p&gt; 
&lt;h3&gt;Tiny GPU, huge models&lt;/h3&gt; 
&lt;p&gt;The trick: AirLLM only ever keeps &lt;strong&gt;one layer on the GPU at a time&lt;/strong&gt;, so the VRAM you need depends on the model&#39;s layer size — not its total size. That&#39;s how a 671B model fits on a hobbyist card:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Size&lt;/th&gt; 
   &lt;th&gt;GPU VRAM&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Qwen3 / Mistral / Phi (≈8B)&lt;/td&gt; 
   &lt;td&gt;8B&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~1–2 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Qwen3-30B / Mixtral (MoE)&lt;/td&gt; 
   &lt;td&gt;30–47B&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~1–3 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Qwen3-235B (MoE)&lt;/td&gt; 
   &lt;td&gt;235B&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~3 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Llama 3.x 70B (full precision)&lt;/td&gt; 
   &lt;td&gt;70B&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~4 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Llama 3.1 405B&lt;/td&gt; 
   &lt;td&gt;405B&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~8 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;DeepSeek-V3&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;671B&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;~12 GB&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Same one line of code for all of them — no special setup.&lt;/p&gt; 
&lt;h2&gt;Acknowledgement&lt;/h2&gt; 
&lt;p&gt;A lot of the code are based on SimJeg&#39;s great work in the Kaggle exam competition. Big shoutout to SimJeg:&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/SimJeg&quot;&gt;GitHub account @SimJeg&lt;/a&gt;, &lt;a href=&quot;https://www.kaggle.com/code/simjeg/platypus2-70b-with-wikipedia-rag&quot;&gt;the code on Kaggle&lt;/a&gt;, &lt;a href=&quot;https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446414&quot;&gt;the associated discussion&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;h3&gt;1. MetadataIncompleteBuffer&lt;/h3&gt; 
&lt;p&gt;safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer&lt;/p&gt; 
&lt;p&gt;If you run into this error, most possible cause is you run out of disk space. The process of splitting model is very disk-consuming. See &lt;a href=&quot;https://huggingface.co/TheBloke/guanaco-65B-GPTQ/discussions/12&quot;&gt;this&lt;/a&gt;. You may need to extend your disk space, clear huggingface &lt;a href=&quot;https://huggingface.co/docs/datasets/cache&quot;&gt;.cache&lt;/a&gt; and rerun.&lt;/p&gt; 
&lt;h3&gt;2. ValueError: max() arg is an empty sequence&lt;/h3&gt; 
&lt;p&gt;Most likely you are loading QWen or ChatGLM model with Llama2 class. Try the following:&lt;/p&gt; 
&lt;p&gt;For QWen model:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel #&amp;lt;----- instead of AirLLMLlama2
AutoModel.from_pretrained(...)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For ChatGLM model:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from airllm import AutoModel #&amp;lt;----- instead of AirLLMLlama2
AutoModel.from_pretrained(...)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;3. 401 Client Error....Repo model ... is gated.&lt;/h3&gt; 
&lt;p&gt;Some models are gated models, needs huggingface api token. You can provide hf_token:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;model = AutoModel.from_pretrained(&quot;meta-llama/Llama-2-7b-hf&quot;, #hf_token=&#39;HF_API_TOKEN&#39;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;4. ValueError: Asking to pad but the tokenizer does not have a padding token.&lt;/h3&gt; 
&lt;p&gt;Some model&#39;s tokenizer doesn&#39;t have padding token, so you can set a padding token or simply turn the padding config off:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;input_tokens = model.tokenizer(input_text,
   return_tensors=&quot;pt&quot;, 
   return_attention_mask=False, 
   truncation=True, 
   max_length=MAX_LENGTH, 
   padding=False  #&amp;lt;-----------   turn off padding 
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Citing AirLLM&lt;/h2&gt; 
&lt;p&gt;If you find AirLLM useful in your research and wish to cite it, please use the following BibTex entry:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@software{airllm2023,
  author = {Gavin Li},
  title = {AirLLM: scaling large language models on low-end commodity computers},
  url = {https://github.com/lyogavin/airllm/},
  version = {0.0},
  year = {2023},
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Sponsors&lt;/h2&gt; 
&lt;a href=&quot;https://bloome.im/app?ref=G6BYnov0&amp;amp;utm_medium=github&amp;amp;utm_source=lyogavin-airllm-ivor-202606&quot;&gt; &lt;img src=&quot;https://github.com/lyogavin/airllm/raw/main/assets/bloome.png?raw=true&quot; alt=&quot;Bloome — Run AI Agent Teams in the Cloud&quot; width=&quot;50%&quot; /&gt; &lt;/a&gt; 
&lt;h3&gt;Run AI Agent Teams in the Cloud — Bloome&lt;/h3&gt; 
&lt;p&gt;Bloome is an AI-agent IM platform: build and run AI agent teams in the cloud with zero setup. Add a skill as an agent in a group chat, run it in one click from web or mobile, and share it with your team — think of it as a group chat where your AI assistants are teammates you can @mention and assign tasks to.&lt;/p&gt; 
&lt;p&gt;👉 Try &lt;a href=&quot;https://bloome.im/app?ref=G6BYnov0&amp;amp;utm_medium=github&amp;amp;utm_source=lyogavin-airllm-ivor-202606&quot;&gt;Bloome&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Contribution&lt;/h2&gt; 
&lt;p&gt;Welcomed contributions, ideas and discussions!&lt;/p&gt; 
&lt;p&gt;If you find it useful, please ⭐ or buy me a coffee! 🙏&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://bmc.link/lyogavinQ&quot;&gt;&lt;img src=&quot;https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png&quot; alt=&quot;&amp;quot;Buy Me A Coffee&amp;quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>LadybirdBrowser/ladybird</title>
      <link>https://github.com/LadybirdBrowser/ladybird</link>
      <description>&lt;p&gt;Truly independent web browser&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Ladybird&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://ladybird.org&quot;&gt;Ladybird&lt;/a&gt; is a truly independent web browser, using a novel engine based on web standards.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;Ladybird is in a pre-alpha state, and only suitable for use by developers&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;p&gt;We aim to build a complete, usable browser for the modern web.&lt;/p&gt; 
&lt;p&gt;Ladybird uses a multi-process architecture with a main UI process, several WebContent renderer processes, an ImageDecoder process, and a RequestServer process.&lt;/p&gt; 
&lt;p&gt;Image decoding and network connections are done out of process to be more robust against malicious content. Each tab has its own renderer process, which is sandboxed from the rest of the system.&lt;/p&gt; 
&lt;p&gt;At the moment, many core library support components are inherited from SerenityOS:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;LibWeb: Web rendering engine&lt;/li&gt; 
 &lt;li&gt;LibJS: JavaScript engine&lt;/li&gt; 
 &lt;li&gt;LibWasm: WebAssembly implementation&lt;/li&gt; 
 &lt;li&gt;LibCrypto/LibTLS: Cryptography primitives and Transport Layer Security&lt;/li&gt; 
 &lt;li&gt;LibHTTP: HTTP/1.1 client&lt;/li&gt; 
 &lt;li&gt;LibGfx: 2D Graphics Library, Image Decoding and Rendering&lt;/li&gt; 
 &lt;li&gt;LibUnicode: Unicode and locale support&lt;/li&gt; 
 &lt;li&gt;LibMedia: Audio and video playback&lt;/li&gt; 
 &lt;li&gt;LibCore: Event loop, OS abstraction layer&lt;/li&gt; 
 &lt;li&gt;LibIPC: Inter-process communication&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;How do I build and run this?&lt;/h2&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/Documentation/BuildInstructionsLadybird.md&quot;&gt;build instructions&lt;/a&gt; for information on how to build Ladybird.&lt;/p&gt; 
&lt;p&gt;Ladybird runs on Linux, macOS, Windows (with WSL2), and many other *Nixes.&lt;/p&gt; 
&lt;h2&gt;How do I read the documentation?&lt;/h2&gt; 
&lt;p&gt;Code-related documentation can be found in the &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/Documentation/&quot;&gt;documentation&lt;/a&gt; folder.&lt;/p&gt; 
&lt;h2&gt;Get in touch and participate!&lt;/h2&gt; 
&lt;p&gt;Join &lt;a href=&quot;https://discord.gg/nvfjVJ4Svh&quot;&gt;our Discord server&lt;/a&gt; to participate in issue and development discussions.&lt;/p&gt; 
&lt;p&gt;Please read &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/Documentation/GettingStartedContributing.md&quot;&gt;Getting involved with Ladybird&lt;/a&gt; if you&#39;re new to Ladybird and want to help.&lt;/p&gt; 
&lt;p&gt;Before opening an issue, please see the &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/CONTRIBUTING.md#issue-policy&quot;&gt;issue policy&lt;/a&gt; and the &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/ISSUES.md&quot;&gt;detailed issue-reporting guidelines&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The project participation guidelines can be found in &lt;a href=&quot;https://raw.githubusercontent.com/LadybirdBrowser/ladybird/master/CONTRIBUTING.md&quot;&gt;&lt;code&gt;CONTRIBUTING.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;Ladybird is licensed under a 2-clause BSD license.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>goauthentik/authentik</title>
      <link>https://github.com/goauthentik/authentik</link>
      <description>&lt;p&gt;The authentication glue you need.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://goauthentik.io/img/icon_top_brand_colour.svg?sanitize=true&quot; height=&quot;150&quot; alt=&quot;authentik logo&quot; /&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;&lt;a href=&quot;https://goauthentik.io/discord&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/809154715984199690?label=Discord&amp;amp;style=for-the-badge&quot; alt=&quot;Join Discord&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/goauthentik/authentik/actions/workflows/ci-main.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/goauthentik/authentik/ci-main.yml?branch=main&amp;amp;label=core%20build&amp;amp;style=for-the-badge&quot; alt=&quot;GitHub Workflow Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/goauthentik/authentik/actions/workflows/ci-outpost.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/goauthentik/authentik/ci-outpost.yml?branch=main&amp;amp;label=outpost%20build&amp;amp;style=for-the-badge&quot; alt=&quot;GitHub Workflow Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/goauthentik/authentik/actions/workflows/ci-web.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/goauthentik/authentik/ci-web.yml?branch=main&amp;amp;label=web%20build&amp;amp;style=for-the-badge&quot; alt=&quot;GitHub Workflow Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://codecov.io/gh/goauthentik/authentik&quot;&gt;&lt;img src=&quot;https://img.shields.io/codecov/c/gh/goauthentik/authentik?style=for-the-badge&quot; alt=&quot;Code Coverage&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://img.shields.io/docker/v/authentik/server?sort=semver&amp;amp;style=for-the-badge&quot; alt=&quot;Latest version&quot; /&gt; &lt;a href=&quot;https://explore.transifex.com/authentik/authentik/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Help%20translate-transifex-blue?style=for-the-badge&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;What is authentik?&lt;/h2&gt; 
&lt;p&gt;authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.&lt;/p&gt; 
&lt;p&gt;Our &lt;a href=&quot;https://goauthentik.io/pricing&quot;&gt;enterprise offering&lt;/a&gt; is available for organizations to securely replace existing IdPs such as Okta, Auth0, Entra ID, and Ping Identity for robust, large-scale identity management.&lt;/p&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Docker Compose: recommended for small/test setups. See the &lt;a href=&quot;https://docs.goauthentik.io/docs/install-config/install/docker-compose/&quot;&gt;documentation&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Kubernetes (Helm Chart): recommended for larger setups. See the &lt;a href=&quot;https://docs.goauthentik.io/docs/install-config/install/kubernetes/&quot;&gt;documentation&lt;/a&gt; and the Helm chart &lt;a href=&quot;https://github.com/goauthentik/helm&quot;&gt;repository&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;AWS CloudFormation: deploy on AWS using our official templates. See the &lt;a href=&quot;https://docs.goauthentik.io/docs/install-config/install/aws/&quot;&gt;documentation&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;DigitalOcean Marketplace: one-click deployment via the official Marketplace app. See the &lt;a href=&quot;https://marketplace.digitalocean.com/apps/authentik&quot;&gt;app listing&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Screenshots&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Light&lt;/th&gt; 
   &lt;th&gt;Dark&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://docs.goauthentik.io/img/screen_apps_light.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://docs.goauthentik.io/img/screen_apps_dark.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://docs.goauthentik.io/img/screen_admin_light.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://docs.goauthentik.io/img/screen_admin_dark.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Development and contributions&lt;/h2&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://docs.goauthentik.io/docs/developer-docs/&quot;&gt;Developer Documentation&lt;/a&gt; for information about setting up local build environments, testing your contributions, and our contribution process.&lt;/p&gt; 
&lt;p&gt;When you contribute documentation, either to accompany a code change or as a standalone contribution, please be sure to follow our documentation &lt;a href=&quot;https://raw.githubusercontent.com/goauthentik/authentik/main/website/docs/developer-docs/docs/style-guide.mdx&quot;&gt;Style Guide&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Security&lt;/h2&gt; 
&lt;p&gt;Please see &lt;a href=&quot;https://raw.githubusercontent.com/goauthentik/authentik/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Adoption&lt;/h2&gt; 
&lt;p&gt;Using authentik? We&#39;d love to hear your story and feature your logo. Email us at &lt;a href=&quot;mailto:hello@goauthentik.io&quot;&gt;hello@goauthentik.io&lt;/a&gt; or open a GitHub Issue/PR!&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/goauthentik/authentik/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-MIT-green?style=for-the-badge&quot; alt=&quot;MIT License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/goauthentik/authentik/main/website/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey?style=for-the-badge&quot; alt=&quot;CC BY-SA 4.0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/goauthentik/authentik/main/authentik/enterprise/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-EE-orange?style=for-the-badge&quot; alt=&quot;authentik EE License&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
