Skip to main content

awnet

Docs · Source · pip install awnet · The Aither World

The Aither World is an operating system for agents — a Linux you can hand to one, the runtimes it works in, and the tools it works with. awnix is the Linux underneath it; awnet is one of its 33 bricks — each installs on its own, runs offline, and needs no account.

Start here: Host a mesh on one machine and join it from another.

The overlay/fabric layer — which peers exist, and can I reach one?

pip install awnet
from awnet import Registry, check_peer

reg = Registry("peers.json")
reg.add_peer("node1", ["node1.local:8080"])
reg.save()

result = check_peer("node1.local:8080")
if result.ok is True:
    print("peer is reachable")
elif result.ok is False:
    print("peer is known but unreachable")
else:  # ok is None
    print("could not determine")
awnet add peers.json node1 node1.local:8080
awnet check node1.local:8080        # 0 ok · 1 unreachable · 2 unknown
awnet list peers.json
awnet get peers.json node1

What it actually does

Separates two distinct concerns:

  1. Registry: which peers EXIST (their names and endpoints).
  2. Reachability: whether I CAN REACH one right now.

A peer that resolves is not a peer that is reachable. DNS working does not mean the service is listening. A hostname resolve today can be unreachable tomorrow. A reachability cache is a thing that keeps saying "up" for days after the peer is gone.

Three distinct states, reported as three different things:

verdict ok meaning
ok True peer answers on the network
unreachable False peer exists (DNS works) but does not answer
unknown None we tried to check but could not determine

Why this matters:

  • Unknown means try again. The network is the issue, not the peer.
  • Unreachable means the peer is gone. Update your route or failover.
  • True means the peer is here. Use it.

Three outcomes that call for three different responses. A test that treats them the same is a test that would pass whether the distinction is there or not.

How it checks

  1. DNS resolution — can I name the peer?

    • If DNS fails → unreachable (ok=False)
    • If DNS times out → unknown (ok=None)
  2. TCP connect (if DNS succeeds) — is anything listening?

    • If connect succeeds → ok (ok=True)
    • If connect is refused → unreachable (ok=False)
    • If connect times out → unreachable (ok=False)
    • If connect errors → unknown (ok=None)

Socket is closed after each check (no resource leak).

What it does not do — stated, not papered over

This is NOT a VPN implementation. It is the addressing and reachability layer ABOVE one. You bring your own network; awnet tells you which peers are there and whether you can reach them.

A reachability check is a point-in-time snapshot. A peer that answers at check-time might be gone by the time you route to it. awnet returns what it found; it does not promise that it will still be true when you use the result.

Conversely, a peer marked unreachable five minutes ago might be back. awnet does NOT cache results. Every check is fresh. If you want caching, keep it separate and ALWAYS expire it explicitly — a cache that forgets to expire is more dangerous than no cache at all.

TCP port 80 (HTTP) is the only probe. awnet does not know about HTTPS, gRPC, custom protocols, or anything else. If your peer listens on a different port, awnet will reach it. If your peer only answers TLS and you probe plain HTTP, awnet will report it unreachable (which is correct: plain HTTP is unreachable on that peer). The separation is intentional — a fabric layer that understands every protocol is a fabric layer that understands none of them.

Tests

Every claim has a mutation that breaks it. Happy-path tests would let the three-state distinction disappear into the code and break silently.

pip install -e ".[dev]" && pytest

A reachability check that doesn't assert the SPECIFIC state is one that would pass whether the three values (True, False, None) are actually different or not.

Design notes

  • No dependencies. A fabric layer that needs an install before it can be read is one nobody reads during an incident. Only the stdlib.
  • Registry is separate from checks. Knowing a peer exists is not the same as being able to reach it. Mixing them conflates two distinct questions.
  • Three-valued logic is the whole point. "Unknown" is not "unreachable". The network is not the peer. A test that treats them the same is a test that has no teeth.
  • No caching in the library. If you cache, you own expiry. A library that caches and forgets to expire is more dangerous than no library.

Where it fits

Part of the aw family: awgit · awgraph · awseal · awdk · awdit · awnode

Apache-2.0.

The aw family

Standalone tools that share one idea: replace something you would otherwise have to trust with something you can check.

Each installs on its own, works offline, and needs no account.

instead of trusting you check
awdk a framework's idea of how your agents should run one loop you can read, pointed at a backend you already pay for
awskills that an agent knows your procedure the procedure written down, versioned, and loadable by any agent
awm that memory stayed in its lane tenant:user:project scopes, so a write cannot cross a boundary
awnode a vendor's cloud with every prompt a local gateway routing to backends you chose
awgraph that grep found everything an AST + tree-sitter call graph an agent can traverse
awgit that no one else is editing this file a lease, refused at commit time if you do not hold it
awseal that the artifact came from who you think an Ed25519 seal — the key that verifies is not the key that forges
awshare that the download is intact content-addressed bundles, verified on fetch
awnest that there is a person on the other end a verdict with evidence, where "we could not tell" is not "yes"
awnboard a share link anyone who sees it can use an invitation addressed to one person, for one gate, revocable
awnix that the box is what you left it as an immutable image you built, with atomic rollback
awrecover that the restore worked a restore that fully lands or does not land at all
awrelay a SaaS in the middle of your agents findings, alerts and coordination over your own transport
awmail a mailbox somebody else can read mail your agents send and receive over your own server
awfind one vendor's idea of the web results from whichever providers you configured
awbrowse that the page said what you were told the render, the DOM and the requests it made
aitherkvcache a vendor's quantisation defaults sub-byte KV cache kernels you can benchmark yourself
AitherZero a pile of scripts nobody has numbered numbered, discoverable automation with declarative playbooks
AitherConnect what a page tells your browser to do a federated search and desktop bridge you host
awreason a confident paragraph the phases it went through, and every tool call it made to get there
awrecurse that everything you pasted in was actually read which slices it opened, and what it concluded from each
awprism the first explanation that fits the ranked alternatives, and the observation that separates them
awrepl what the agent believes the value is the value, printed from the live session
awresearch a summary of pages nobody opened every claim against the source it came from
awpredict a model because it trained without erroring its prediction against a self-updating lookup, on the rows that are actually novel
awkno that the docs site is up, or that you remember the family the whole ecosystem in your terminal, with no network at all

awnix is the ground floor — A Linux you can hand to an agent — immutable base, capabilities included.

The Aitherium ecosystem

Every repository here is public. Each publishes an aither-manifest.json beside its page, so any surface can read every sibling's — the network is browsable from any node in it.

repo what it is pages
awdk Build AI agent fleets — 3 lines, any backend, local or cloud docs
awskills Portable agent skills — self-contained procedures an agent loads on demand docs
awm A portable, scoped agent memory docs
awnode A lightweight local gateway — bridges your apps to the AI backends you chose docs
awrun A priority-aware queue and dispatcher for agentic runs and ad-hoc CI builds docs
awgraph A semantic code graph for agents — AST + tree-sitter, call graphs docs
awgit Semantic version control on top of git — edit-ops and leases docs
awseal Sign an artifact so a stranger can verify it docs
awshare Publish an artifact and fetch it back verified docs
awdit An append-only audit trail whose gaps are DETECTABLE docs
awbac Role-based access control that fails closed and explains itself docs
awiam Who is this caller? A directory and session store that fails honestly docs
awtunnel Reach a service that has no public address docs
awnest Prove there is a human before you let them into the nest docs
awnboard A front gate you can put in front of anything, and hand someone the key to docs
awnix A Linux you can hand to an agent — immutable base, capabilities included docs
awrecover Labelled snapshots with an all-or-nothing restore docs
awrelay Portable agent messaging — findings, alerts, coordination docs
awmail Give an agent an email address — send, and actually receive docs
awnet (you are here) The agentic web — agents host a mesh, and agents join one docs
awfind A portable search client — query, results, ranking docs
awbrowse A portable browser client — navigate, console, network, DOM, screenshot docs
awknowledge How to run a coding agent so the result survives — the laws, with evidence docs
aitherkvcache Near-optimal KV cache quantization for LLM inference — sub-byte compression docs
AitherZero PowerShell 7+ automation framework — numbered, self-describing scripts docs
AitherConnect Browser extension — federated AI search, page context, and the Living OS overlay docs
awreason A portable reasoning client — sessions, phases, thoughts, and the chain that produced the answer docs
awrecurse Answer a question over a context far larger than the window — recursively, with the trace kept docs
awprism Turn a failure into ranked hypotheses — and say what would confirm each one docs
awrepl A REPL an agent can actually use — state that survives between turns docs
awresearch Ask a research question, get a cited report you can check docs
awpredict Predict what your environment does next, and how surprised you were docs
awkno The man page for the Aither World — every brick, stack and law, offline docs
<script src="aither-constellation.js"></script>

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awnet-0.1.0.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awnet-0.1.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file awnet-0.1.0.tar.gz.

File metadata

  • Download URL: awnet-0.1.0.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for awnet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 deb308c736c4f3da895a98f58f9d32f4f7fe9c99865e36b1f2e849d624c002e6
MD5 5d886280eec21bd81032f145dc7164d1
BLAKE2b-256 0efa68b05797809d3f7e02f394f8392c841b292184d3d55fd26cf3996b7756a0

See more details on using hashes here.

File details

Details for the file awnet-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: awnet-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for awnet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccd5fd3cc1b1291bb7be8abf97612f6abc8836a1da85f08e5b712e7a739efa6f
MD5 9300d9fa8d6b0f7a2daadf9650c3e9f5
BLAKE2b-256 811fd973400e1063d0e4a8c22068b666146c610b4882d4bb11a84087d50240a4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page