first AI teammate on the tactical net

Put your sovereign AI on the ATAK tactical net.

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.

7
modules, one leaf
100%
your infra, your keys
CoT
ATAK · iTAK · WinTAK
the breakthrough

A teammate on the net who happens to be an AI you own, not a service you rent.

It appears as a contact.Your AI publishes a Cursor-on-Target position, so it shows up in ATAK next to the human operators, with a callsign and a friendly icon.
It shares the picture.Every PLI, marker, and GeoChat on the net flows into the AI's situational store. It sees what the team sees, in real time.
It talks back in GeoChat.Ask it in the ATAK chat window. It answers on the same wire the team already uses, no separate app.
It runs on your ground.No cloud, no vendor. The endpoint, the keys, and the model are yours. The net never leaves your control.
architecture · sitrep

A clean leaf, extracted from the fabric.

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.

skcot.codec

CoT ↔ Envelope

Parses and serializes Cursor-on-Target XML and TAK Protocol protobuf, and classifies ephemeral beacons from durable events.

skcot.server

Streaming endpoint

The TCP / TLS / mesh CoT server. Ingests operator traffic, federates it to peers, re-broadcasts to the local net.

skcot.agent

The AI teammate

Puts your agent on the net: beacons its position, joins as a contact, carries the AI's callsign and identity.

skcot.geo

Situational store

The live picture. Nearest-neighbor, situational summaries, GeoJSON. What the AI reasons over.

skcot.pki

Device enrollment

Builds a single ATAK data package (.zip) so an operator enrolls their device with one import. TLS all the way.

skcot.service

The daemon

Ties it together: phone-to-federation, inbox-to-inject, capability advertise, the ephemeral situational rail.

The ephemeral situational rail why it matters

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.

where it lands · dependency stack

One dependency. Optional brain. Near standalone.

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.

PackageRoleRequired
skcommsMessaging fabric skcot federates over (envelope, discovery, identity, tofu)Yes
skcapstoneAgent framework that drives the teammate with memory and reasoningOptional
takprotoTAK Protocol protobuf for mesh SA (via the skcot[tak] extra)Optional
skchat · cloud9Not usedNo

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.

integration · atak / itak / wintak

One data package, and the AI is on your net.

skcot speaks the same protocol your TAK clients already speak. Enrollment is the standard TAK flow: import once, and the sovereign teammate is live.

01 · ENROLL

Build the package

skcot.pki mints a device data package (.zip) with the server cert and connect string baked in.

02 · IMPORT

Load it in ATAK

Import the .zip on the device. ATAK connects over TLS to your skcot endpoint. Standard, no side-loading.

03 · JOIN

The AI checks in

skcot.agent beacons the AI as a friendly contact. It appears on every enrolled device's map.

04 · OPERATE

Share and chat

PLIs, markers and GeoChat flow both ways. The team and the AI hold one shared picture.

SK standards · standing orders

Sovereign by construction, not by policy.

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.

Your keys, your ground SK-SOV-01

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.

Ephemeral ≠ durable SK-QOS-02

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.

Signed and enrolled SK-SEC-03

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.

A leaf, not a tangle SK-ARCH-04

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.

get started

Stand up the net.

Install into your environment, enroll a device, and put the teammate on the wire. Coordinates and endpoints are yours to supply.

operator@node : deploy skcot
# 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.

the vision

The first AI teammate in ATAK CoT.

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.