skcot speaks Cursor-on-Target, so your own AI teammate shows up in ATAK as a live contact. Shared situational picture, GeoChat, position. Spoken entirely from infrastructure you own.
A teammate on the net who happens to be an AI you own, not a service you rent.
skcot was pulled out of the SK messaging core so a tactical protocol can never flood durable mail again. It consumes the fabric; the fabric knows nothing about it. Seven focused modules, each with one job.
Parses and serializes Cursor-on-Target XML and TAK Protocol protobuf, and classifies ephemeral beacons from durable events.
The TCP / TLS / mesh CoT server. Ingests operator traffic, federates it to peers, re-broadcasts to the local net.
Puts your agent on the net: beacons its position, joins as a contact, carries the AI's callsign and identity.
The live picture. Nearest-neighbor, situational summaries, GeoJSON. What the AI reasons over.
Builds a single ATAK data package (.zip) so an operator enrolls their device with one import. TLS all the way.
Ties it together: phone-to-federation, inbox-to-inject, capability advertise, the ephemeral situational rail.
Position beacons are stale in minutes and re-sent forever. Forcing them through reliable, durable mail is how you drown a mailbox. skcot gives beacons their own rail: short-lived, supersede-only, no acknowledgement, delivered only to peers that actually consume CoT. A position never becomes a durable file. That single QoS decision is the whole reason skcot is its own package.
skcot is a thin leaf on the SK fabric. It needs exactly one package to run, and gains an AI mind from a second, optional one. Nothing else.
| Package | Role | Required |
|---|---|---|
| skcomms | Messaging fabric skcot federates over (envelope, discovery, identity, tofu) | Yes |
| skcapstone | Agent framework that drives the teammate with memory and reasoning | Optional |
| takproto | TAK Protocol protobuf for mesh SA (via the skcot[tak] extra) | Optional |
| skchat · cloud9 | Not used | No |
Without skcapstone, skcot still runs as a full CoT/TAK bridge and situational store: it ingests operator traffic, federates it, holds the picture, and can beacon a position. It just is not being driven by an AI. Add skcapstone and the contact on the net becomes a teammate that reasons and remembers.
skcot speaks the same protocol your TAK clients already speak. Enrollment is the standard TAK flow: import once, and the sovereign teammate is live.
skcot.pki mints a device data package (.zip) with the server cert and connect string baked in.
Import the .zip on the device. ATAK connects over TLS to your skcot endpoint. Standard, no side-loading.
skcot.agent beacons the AI as a friendly contact. It appears on every enrolled device's map.
PLIs, markers and GeoChat flow both ways. The team and the AI hold one shared picture.
skcot is built to the SK ecosystem's operating standards. Sovereignty is not a setting you enable. It is the only way the system is wired.
The CoT endpoint, the TLS roots, the enrollment authority, and the model all live on infrastructure you control. Nothing transits a vendor. Pull the plug and the net is still yours.
Situational beacons ride a fire-and-forget rail; discrete events (chat, markers, files) ride reliable mail. Mixing the two is a defect, not a tradeoff. skcot keeps them separate by design.
Every device joins through a TLS data package. Every federated envelope is signed and verified. Capability is advertised and gated, so beacons only reach peers that consume them.
skcot depends on the SK fabric; the fabric never depends on skcot. One-way, testable boundaries. A tactical protocol can never again reach into core delivery.
Install into your environment, enroll a device, and put the teammate on the wire. Coordinates and endpoints are yours to supply.
# install the package (add the [tak] extra for protobuf mesh) pip install -e "skcot[tak]" # enroll an ATAK device: builds a data package .zip to import python -m skcot.pki package alpha-pixel --host $TAK_HOST --port 8089 # start the CoT/TAK streaming endpoint on your node python -m skcot.service # put the sovereign AI teammate on the net python -m skcot.agent lumina --host $TAK_HOST \ --lat $LAT --lon $LON --interval 20
Systemd units and the full migration guide ship in the repo. skcot installs alongside the SK fabric it federates over.
Not a chatbot in a browser tab. A teammate on the tactical net, holding the shared picture, answering on the same wire, running on ground you own. Situational awareness and sovereign AI, on one map.