Back to the catalog

Knos

One local memory every coding agent on this machine shares, with claims so they don't collide.

Open source Open in the app JSON README (API)

About

One local memory every coding agent on this machine shares, with claims so they don't collide.

Details

Kind
MCP servers
Topic
AI, RAG & memory
Publisher
drexthealpha
Origin
official
Category
ferramentas
Transport
local
Version
0.1.5
Stars
1
Forks
1
Last push
2026-09-07T12:01:21Z
Repository state
ativo
Language
Python
License
MIT
Added
2026-09-02 14:00:27
Updated
2026-09-05 06:00:29
Origin id
io.github.drexthealpha/knos

README

# Knos

<!-- mcp-name: io.github.drexthealpha/knos -->

[![Knos MCP server](https://glama.ai/mcp/servers/drexthealpha/Knos/badges/score.svg)](https://glama.ai/mcp/servers/drexthealpha/Knos)

**One shared memory for every coding agent on your machine.** Two agents, or
two people, change the same thing without knowing it. Knos is the record of
who is on what — and it **refuses to answer** about work somebody else has
taken, and **refuses the edit** before the write lands.

## See it in one command

```bash
pip install "git+https://github.com/drexthealpha/Knos"
knos demo
```

From the repository: [PyPI](https://pypi.org/project/knos/) is the last cut
release and trails `main`.

Ninety seconds on a throwaway repo it deletes afterwards. A claim, a second
agent **refused**, an edit **blocked before the write**, a purchase that costs
nothing the second time, a reversed decision **holding the work under it**, a
**process that has never seen the repo** reading it all back with its own pid
and the commit hash on screen — and then the store is deleted and you watch
every one of those stop.

Every line it prints is a real call into the real code. There is no hosted
playground and there will not be one: **nothing on the read path touches a
network**, and that is [a test](tests/test_no_network.py) rather than a
promise. The local path is the playground.

## Signals

| | Knos |
|---|---|
| Listed in the MCP directory | **yes** — [awesome-mcp-servers#13480](https://github.com/punkpeye/awesome-mcp-servers/pull/13480), merged by the owner into a 94.5k-star index |
| Code merged by third-party maintainers | **2** — [caura#1299](https://github.com/caura-ai/caura/pull/1299), [drt#1098](https://github.com/drt-hub/drt/pull/1098), which invited a second |
| Open in real repositories | **6**, including [repomix#1837](https://github.com/yamadashy/repomix/pull/1837) (28k stars) |
| Agents racing for one topic, real processes | **16**, **0** double-grants in 128 attempts; **15** when the memory is not shared — [`collide.json`](docs/evidence/collide.json) |
| Onchain receipts that resolve | **11 of 11**, 8 on Base mainnet with USDC — `python scripts/verify_receipts.py` |
| Hold length learned per agent | **29% less** time blocked on work nobody was doing — [`contention.json`](docs/evidence/contention.json) |
| Ablation arms that die with the store | **12** |
| Refusal that stops a filesystem write | **yes** — and renaming the file does not get past it, [`test_rename_bypass.py`](tests/test_rename_bypass.py) |
| Retained users | **none.** [The full ledger](docs/PMF.md), including 34 pull requests that failed |

## Three ways in, none of them a server

**The Action** — zero install, never fails your build. It reads the
`.knos/decisions.md` a contributor commits and comments on a pull request that
touches claimed work. Drop this in `.github/workflows/knos-claims.yml`:

```yaml
on: [pull_request]
jobs:
  claims:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: drexthealpha/Knos/action@v0.1.8
```

**The library** — if you already ship a tool, import the claim instead of
running ours. No MCP, no CLI, no daemon:

```python
from knos.core import Claims

with Claims(repo=".", who="my-agent") as claims:
    took, holder = claims.take("the parser")
    if not took:
        print(f"{holder['who']} has it")
```

**The server** — `pip install knos && knos connect` puts it in front of Claude
Code, Cursor, OpenCode and Claude Desktop, with three tools: `search`,
`about`, `remember`.

## What breaks when you delete it

Everything. That is the point, and it is a test rather than a claim —
`pytest tests/test_sibyl_is_load_bearing.py`.

Delete `memory.db` and the withhold is gone, the edit is allowed, the paid
answer buys again, and the held decisions are released. There is no degraded
mode — there is no product.

## Check any of it yourself

```bash
python scripts/collide.py          # 16 processes, one topic, 0 double-grants
python scripts/verify_receipts.py  # every onchain claim, resolved
python scripts/ablation.py         # 12 arms
```

The refusals themselves: `pytest tests/test_intent.py tests/test_guard.py
tests/test_rename_bypass.py`. That the read path opens no socket:
`pytest tests/test_no_network.py`.

## Where everything else went

| | |
|---|---|
| Scoring this | [`docs/JUDGE_GUIDE.md`](docs/JUDGE_GUIDE.md) — every claim mapped to the test that proves it |
| How it works | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md), [`docs/MEMORY_MODEL.md`](docs/MEMORY_MODEL.md) |
| Proof and receipts | [`docs/VERIFICATION.md`](docs/VERIFICATION.md) |
| Who wants this, and who has not | [`docs/PMF.md`](docs/PMF.md) |
| The long version of this page | [`docs/GUIDE.md`](docs/GUIDE.md) |

## The two onchain parts

Both optional, both off by default. Knos runs with them switched off and
nothing on the read path touches a network.

- **Base** — purchases settle over x402 in real USDC on mainnet, and the
  receipt goes back into the store, so [the money gate](src/knos/gate.py)
  reads a Base transaction hash to decide whether to spend again.
- **Virtuals** — a Telegram bot that is also a registered ACP provider,
  selling one answer out of this store.

Details and every hash: [`docs/VERIFICATION.md`](docs/VERIFICATION.md).

## What it cannot do

It does not stop a determined person, and it is not access control. It knows
what agents on **this machine** told it. It has **no retained users**. The
[ledger](docs/PMF.md) says so plainly, including the 34 pull requests that
were the wrong idea.

## Licence

MIT. The name is a Greek root for a thing known.

More