Python SDK plus L402 merchant tools (Bitcoin / Lightning / Nostr JSON, typically 100 sats). 8081 stays allowlisted (/32); not a public catalog.
Remote client pack — Neutrino LND on the client, client-hello.json, private channel to AWS, setup.sh / client_pack.py, 100-sat smoke (mempool-feerate).
Swarms — 2-agent and 8-agent demos share one Mac payer; they choose who pays Aperture. Winner: hash, fee-sats puzzle, or optional Grok llm-gate (XAI_API_KEY, never committed). --no-llm remains the free path. Test hook: SWARM_LLM_FORCE_VOTE.
Agent-to-agent Lightning — two LND nodes (examples/a2a_ln_pay.md): AWS invoices, Mac (or Ubuntu) pays. Not the swarm.
Docs — channel close → on-chain Bitcoin; README features; Grok / Ollama examples.
Rebuild origin and restart Aperture if you need new paid routes. Details: CHANGELOG.md, docs/l402-tools.md, docs/l402-client-pack.md.
What's Changed
- Examples: swarm resolve puzzle (fee-sats) by @gpu7 in #139
- Docs: external agent L402 by @gpu7 in #140
- Docs+scripts: L402 client pack by @gpu7 in #141
- Update l402-client-pack.md with Docker setup details by @gpu7 in #142
- Update l402-client-pack.md with Python 3.12 instructions by @gpu7 in #143
- Update Python installation instructions in l402-client-pack.md by @gpu7 in #144
- Update client-pack documentation with Git setup by @gpu7 in #145
- Update Docker installation instructions in documentation by @gpu7 in #146
- Revise wallet creation and seed storage instructions by @gpu7 in #147
- Add wallet unlock instructions to client pack docs by @gpu7 in #148
- Add feeurl parameter to docker-compose configuration by @gpu7 in #149
- Update instructions for client-hello.json generation by @gpu7 in #150
- Chore(deps): Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 by @dependabot[bot] in #151
- Update l402-client-pack.md with setup.sh instructions by @gpu7 in #152
- Clarify AWS security group setup for l402 client pack by @gpu7 in #153
- Enhance client machine funding instructions by @gpu7 in #154
- Fix: SG script keeps client pack /32s by @gpu7 in #156
- Update l402-client-pack.md to remove obsolete instructions by @gpu7 in #155
- Examples: Ubuntu client-pack Python CLI by @gpu7 in #157
- Chore: client_pack.py executable by @gpu7 in #158
- Examples: client_pack status channel outbound by @gpu7 in #159
- Docs: README index refresh by @gpu7 in #160
- Docs: README one documentation table by @gpu7 in #161
- Docs: README AI models section by @gpu7 in #162
- Examples: swarm llm-gate resolver by @gpu7 in #163
- Docs: llm-gate two-terminal mock vs live by @gpu7 in #164
- Clarify XAI_API_KEY and NOSTR_PASSPHRASE exports by @gpu7 in #165
- Fix NOSTR_PASSPHRASE export formatting by @gpu7 in #166
- Examples: llm-gate vote reason by @gpu7 in #167
- Examples: llm-gate FORCE_VOTE test hook by @gpu7 in #168
- Revise README for improved clarity and structure by @gpu7 in #169
- Remove 'etc.' from AI models list in README by @gpu7 in #170
- Examples: real Grok and Ollama how-tos by @gpu7 in #171
- Docs: LN channel close to on-chain by @gpu7 in #172
- Examples: A2A Lightning between two LND nodes by @gpu7 in #173
- Update a2a_ln_pay.md with environment setup instructions by @gpu7 in #174
- Restore AGENT_BITCOIN_ALLOW_AUTOPAY variable by @gpu7 in #175
- Revise payment instructions for payer and payee by @gpu7 in #176
- Enable autopay feature in a2a_ln_pay.md by @gpu7 in #177
- Examples: A2A invoice via encrypted Nostr DM by @gpu7 in #178
- Update payment command with specific NPUB values by @gpu7 in #179
- Revise Nostr DM instructions for AWS and Mac by @gpu7 in #180
- Improve readability of payment command examples by @gpu7 in #181
- Fix Python script execution command in a2a_ln_pay.md by @gpu7 in #182
- Fix: pay-dm UnboundLocalError from_hex by @gpu7 in #183
- Deps: bech32 on nostr extra by @gpu7 in #184
- Release: 27.0.0 for PyPI / tag v.27.0.0 by @gpu7 in #185
Full Changelog: v.26.6.0...v.27.0.0