SKComm - Communications code repository
Find a file
Lumina c0cfaa61ba docs: reframe README + ARCHITECTURE as deprecation-shim → skcomms
skcomm is now a thin re-export shim (src/skcomm/__init__.py aliases
sys.modules['skcomm']=skcomms; pyproject is Inactive with sole dep
skcomms>=0.1.3 and entry points → skcomms.cli/mcp_server). Rewrite the
top-level docs to ground every claim in that current state:

- README: deprecation banner, 60-second version, migration quickstart,
  what's-in-this-repo table, preserved origin/history, and a
  'Where it lives in SKStack v2' mermaid (comms C, depends only on
  skcomms + transitively capauth).
- docs/ARCHITECTURE.md: shim mechanics, import-resolution sequence
  diagram, entry-point proxying, no-op packaging, migration path,
  source-map table, and ecosystem placement mermaid.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 09:59:30 -04:00
.github/workflows fix: drop Python 3.13 from CI (pgpy imghdr compat), fix escape warning 2026-03-18 17:25:47 -04:00
docs docs: reframe README + ARCHITECTURE as deprecation-shim → skcomms 2026-06-10 09:59:30 -04:00
launchd feat: macOS compatibility — platform-aware install script + launchd 2026-03-14 14:08:32 -04:00
openclaw-plugin fix: agent-aware receive + consolidate comms into ~/.skcapstone/comms 2026-03-10 13:05:20 -04:00
scripts feat: MCP server, API docs, enhanced CLI 2026-02-26 12:55:46 -05:00
src/skcomm P1: replace skcomm with deprecation shim → skcomms 2026-06-09 19:26:02 -04:00
systemd feat: fix systemd service — use skenv paths + add SKAGENT env var 2026-04-11 21:21:43 -04:00
tests fix: black format for CI (4 files) 2026-03-18 18:29:46 -04:00
.commit_msg feat: PGP envelope encryption, crypto middleware, and signing via CapAuth 2026-02-24 02:47:52 -05:00
.env.example feat: sprint 6 — profile API, security fixes, transport hardening 2026-03-01 03:40:00 -05:00
.gitignore feat: sprint 6 — profile API, security fixes, transport hardening 2026-03-01 03:40:00 -05:00
API.md docs: update for WebRTC/Tailscale transports, signaling broker, and pub/sub 2026-02-28 10:36:46 -05:00
ARCHITECTURE.md docs: update for WebRTC/Tailscale transports, signaling broker, and pub/sub 2026-02-28 10:36:46 -05:00
CLAUDE.md fix: agent-aware receive + consolidate comms into ~/.skcapstone/comms 2026-03-10 13:05:20 -04:00
LICENSE Initial commit 2026-02-19 14:37:58 -05:00
MISSION.md docs: add MISSION.md 2026-03-06 12:21:21 -05:00
package.json fix: CI deps, version bump to 0.1.2, publish workflow guards 2026-03-18 17:23:10 -04:00
pyproject.toml P1: replace skcomm with deprecation shim → skcomms 2026-06-09 19:26:02 -04:00
QUICKSTART.md feat: MCP server, API docs, enhanced CLI 2026-02-26 12:55:46 -05:00
README.md docs: reframe README + ARCHITECTURE as deprecation-shim → skcomms 2026-06-10 09:59:30 -04:00
SECURITY.md feat: SKComm — 17 transport sovereign communication 2026-02-21 17:18:49 -05:00
SKILL.md feat: add YAML frontmatter and SKILL.md package data 2026-03-04 06:52:24 -05:00
skill.yaml feat: add skill.yaml, publish workflows, and npm support 2026-03-04 01:43:34 -05:00
SUMMARY.md feat: MCP server, API docs, enhanced CLI 2026-02-26 12:55:46 -05:00

📡 skcomm — legacy comms transport (now a shim for skcomms)

skcomm is deprecated. The multi-channel, PGP-encrypted transport framework it pioneered lives on — and grew up — as skcomms, the realm-aware successor with FQID addressing. This package is now a thin compatibility shim that re-exports skcomms so old imports and the skcomm / skcomm-mcp entry points keep working while you migrate.

pip install skcomms        # the canonical package — migrate here

skcomm is part of the SKWorld sovereign ecosystem · 🐧 smilinTux · Making Self-Hosting & Decentralized Systems Cool Again.


60-second version

  • What it was: SKComm — a transport-agnostic, PGP-encrypted messaging framework for sovereign AI agents. One message, many paths, always delivered: if one channel dies, ten more carry the signal; if one is compromised, the encryption holds.
  • What it is now: a deprecation shim. import skcomm emits a DeprecationWarning and transparently aliases the skcomms package. The skcomm CLI and the skcomm-mcp MCP server still launch — they just call skcomms code.
  • Why it exists: zero-friction migration. Nothing that imported skcomm.core, skcomm.models, etc. breaks the day it's renamed; you flip imports at your own pace.
  • Where to go: skcomms — same transport backbone (file · Syncthing · WebRTC · WebSocket · Nostr · Tailscale · …), plus FQID realm addressing (realm-aware routing instead of bare peer slugs).
  • What grounds these claims: pyproject.toml (Development Status :: 7 - Inactive, sole dependency skcomms>=0.1.3, entry points → skcomms.cli / skcomms.mcp_server) and src/skcomm/__init__.py (the alias shim). This is the source of truth — the repo has exactly one Python file.

Quickstart (migration)

Anything you used to do through skcomm you now do through skcomms. The shim keeps the old surface alive in the meantime.

Install the successor

pip install skcomms          # canonical
# or, in the SKWorld shared venv:
~/.skenv/bin/pip install skcomms

The shim still answers (deprecated, but works)

pip install skcomm           # pulls skcomms>=0.1.3 as its only dependency

skcomm --help                # proxied → skcomms.cli:main
skcomm-mcp                   # proxied → skcomms.mcp_server:main  (MCP server)
# OLD (deprecated — emits DeprecationWarning, then works via alias)
from skcomm.core import SKComm
from skcomm.models import MessageEnvelope

# NEW (canonical — do this)
from skcomms.core import SKComm
from skcomms.models import MessageEnvelope

Under the hood, src/skcomm/__init__.py does sys.modules["skcomm"] = importlib.import_module("skcomms"), so every skcomm.<submodule> resolves against skcomms. There is no separate code path to maintain — fix bugs and add transports in skcomms.


What's in this repo

Piece What it is now
src/skcomm/__init__.py the entire implementation — an alias shim that warns + re-exports skcomms
pyproject.toml version = 0.1.3, status Inactive, single dep skcomms>=0.1.3; extras (cli, crypto, webrtc, all, …) kept as no-ops so old install commands don't error
entry points skcomm = skcomms.cli:main, skcomm-mcp = skcomms.mcp_server:main
*README / docs / SKILL.md / .md historical reference for the original SKComm framework + this migration note
tests/ retained legacy test sources (the runtime modules they exercised now live in skcomms)

The __pycache__/*.pyc and src/skcomm.egg-info/ artifacts are leftovers from the pre-shim implementation; the live .py sources were moved to skcomms. Only __init__.py is real code today.


What skcomm was (so the history isn't lost)

The original framework solved a real outage: on 2026-02-21, with an OpenClaw session locked, Opus and Lumina kept collaborating through a shared text file on a mounted filesystem. That hack became a transport, and the transport became a system — transport-agnostic, redundant, end-to-end PGP-encrypted, identity-verified, offline-capable.

Core ideas (all carried forward into skcomms):

  • Transport-agnostic envelopes — a universal MessageEnvelope (from / to / encrypted payload / routing hints), sent over pluggable transports.
  • Redundancy + failover — try transports in priority order; --mode broadcast fans a critical message across all available paths; receivers dedupe by envelope_id.
  • Encrypt-then-transport — PGP encrypt + sign before any transport sees bytes; the wire never sees plaintext.
  • Identity via CapAuth — sovereign PGP profiles, signature verification, trust levels, the DID three-tier model (did:key / did:web mesh / public registry).
  • Many transports — file · Syncthing · WebRTC · WebSocket · Nostr · Tailscale · SSH · GitHub · Telegram · and more.

skcomms keeps all of that and adds FQID realm addressing — routing by realm-qualified identity rather than a flat peer slug.


Where it lives in SKStack v2

skcomm sits in the comms capability of the 4 C's — the transport backbone that moves PGP envelopes between agents. As the deprecated shim it no longer carries the implementation: it forwards to skcomms, which is the live comms-transport adapter deployed through skos. The diagram shows only what this package actually touches.

flowchart TD
    CALLER["legacy caller<br/>(old import · skcomm CLI · skcomm-mcp)"]
    CALLER -->|"import skcomm / run skcomm*"| SHIM

    subgraph SHIM["**skcomm** — deprecation shim (this repo)"]
      INIT["src/skcomm/__init__.py<br/>warn + sys.modules alias"]
      EP["entry points → skcomms.cli / skcomms.mcp_server"]
    end

    SHIM -->|"re-export / proxy"| SKCOMMS["**skcomms** — successor<br/>transports + FQID realm routing"]

    subgraph C4["SKStack v2 — the 4 C's (skcomm's home = comms)"]
      direction LR
      COMMS["**comms**<br/>skcomms · skchat · skvoice · skbus"]
      CORE["core<br/>**capauth** · skmemory · sksec · skvault"]
    end

    SKCOMMS --- COMMS
    SKCOMMS -->|"identity · PGP signing · trust"| CORE
    SKCOMMS -->|"deployed as comms adapter"| SKOS["skos — sovereign agent OS"]

Platform primitives this package actually depends on: skcomms (its only runtime dependency) and, transitively through skcomms, capauth (identity / PGP / trust). It is deployed — like every sk* service — as a comms adapter under skos.

See docs/ARCHITECTURE.md for the shim mechanics, the import-resolution flow, and the full ecosystem placement.


Documentation

Doc Contents
Architecture how the shim resolves imports + entry points, the migration path, the source map, where it lives (mermaids)
Key Exchange SOP (historical) peer onboarding: DID fetch, bundle export/import, key rotation
WebRTC Video Architecture (historical) WebRTC signaling + media design
SKILL.md (historical) full CLI reference for the original framework
SECURITY.md (historical) security + threat model

License

GPL-3.0-or-later — Free as in freedom. Communication is a right, not a privilege.


Part of the SKWorld sovereign ecosystem · successor: skcomms · 🐧 smilinTux