Skip to content

Commit ea317a2

Browse files
shivdeep1claude
andcommitted
docs: update README — new SDK, CLI, registry, org badge links
- CI badge now points to airlock-protocol/airlock org repo - Quickstart shows 7-line AirlockClient() pattern - Added CLI section (airlock verify, serve, init) - SDK section shows central registry default + self-host override - Added registry link (api.airlock.ing) - Linked GETTING_STARTED.md - Separated quickstart from self-hosting instructions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent eee9167 commit ea317a2

1 file changed

Lines changed: 47 additions & 19 deletions

File tree

README.md

Lines changed: 47 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Agentic Airlock
22

3-
[![CI](https://github.com/shivdeep1/airlock-protocol/actions/workflows/ci.yml/badge.svg)](https://github.com/shivdeep1/airlock-protocol/actions/workflows/ci.yml)
3+
[![CI](https://github.com/airlock-protocol/airlock/actions/workflows/ci.yml/badge.svg)](https://github.com/airlock-protocol/airlock/actions/workflows/ci.yml)
44
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
55
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
66
[![PyPI version](https://img.shields.io/pypi/v/airlock-protocol.svg)](https://pypi.org/project/airlock-protocol/)
77
[![DCO](https://img.shields.io/badge/DCO-required-brightgreen.svg)](https://developercertificate.org/)
88

99
**DMARC for AI Agents** — an open protocol for agent-to-agent trust verification in the agentic web.
1010

11+
**Registry:** [api.airlock.ing](https://api.airlock.ing) — every verification routes through the central trust registry by default.
12+
1113
---
1214

1315
## The Problem
@@ -71,35 +73,61 @@ Resolve → Handshake → Challenge → Verdict → Seal
7173
## Quickstart
7274

7375
```bash
74-
# Install the package with dev dependencies
75-
pip install -e ".[dev]"
76+
pip install airlock-protocol
77+
78+
# Verify an agent in 7 lines
79+
python -c "
80+
from airlock import AirlockClient
81+
client = AirlockClient() # defaults to api.airlock.ing
82+
result = client.verify('did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK')
83+
print(f'Verified: {result.verified}, Score: {result.trust_score}')
84+
"
85+
```
86+
87+
### CLI
88+
89+
```bash
90+
# Verify an agent from the command line
91+
airlock verify did:key:z6Mk...
7692

77-
# Run the 3-agent demo (no LLM or external services required)
78-
python demo/run_demo.py
93+
# Start a local gateway for development
94+
airlock serve
7995

80-
# Run the full test suite
81-
python -m pytest tests/ -v
96+
# Scaffold a new Airlock-protected project
97+
airlock init
8298
```
8399

100+
### Self-hosting
101+
102+
```bash
103+
# Clone and run locally
104+
git clone https://github.com/airlock-protocol/airlock.git
105+
cd airlock
106+
pip install -e ".[dev]"
107+
python demo/run_demo.py # 3-agent demo, no external services needed
108+
python -m pytest tests/ -v # 313 tests
109+
```
110+
111+
> **[→ Full Getting Started Guide](GETTING_STARTED.md)**
112+
84113
---
85114

86115
## SDK Usage
87116

88117
```python
89-
from airlock.crypto.keys import KeyPair
90-
from airlock.sdk.client import AirlockClient
91-
from airlock.sdk.middleware import AirlockMiddleware
118+
from airlock import AirlockClient
92119

93-
# Option A — direct client
94-
async with AirlockClient("https://your-airlock.example.com", agent_keypair=kp) as client:
95-
result = await client.handshake(handshake_request)
120+
# Default — routes through central Airlock registry (api.airlock.ing)
121+
client = AirlockClient()
122+
result = client.verify("did:key:z6Mk...")
123+
if result.verified:
124+
print(f"Trusted: {result.agent_name}, Score: {result.trust_score}")
96125

97-
# Option B — decorator middleware (drop-in protection for any async handler)
98-
airlock = AirlockMiddleware("https://your-airlock.example.com", agent_private_key=kp)
126+
# Self-hosted — point to your own gateway
127+
client = AirlockClient(gateway_url="http://localhost:8000")
99128

100-
@airlock.protect
101-
async def handle_incoming(request: HandshakeRequest):
102-
... # only called if Airlock returns ACCEPTED
129+
# Async support
130+
result = await client.averify("did:key:z6Mk...")
103131
```
104132

105133
### TypeScript client (`airlock-client`)
@@ -260,4 +288,4 @@ Apache License 2.0. See [LICENSE](LICENSE).
260288

261289
## Author
262290

263-
Shivdeep Singh ([@shivdeep1](https://github.com/shivdeep1))
291+
Shivdeep Singh ([@shivdeep1](https://github.com/shivdeep1))[airlock.ing](https://airlock.ing)

0 commit comments

Comments
 (0)