Skills Catalog (Starter Kit)
This is the starter kit of skills that ships with CUST/OS — 44 skills covering 101 tools across map work, tactical picture, comms, routes, sensors, terrain, memory, and meta. It is not the authoritative feature list; it's a reference library operators can use as-is, tweak, or read as examples for their own skills.
The kit's source lives in the open-source github.com/nimbusxr/custos repo alongside the starter custos.yaml and the scratch tests. Once installed, skills live at /sdcard/atak/custos/skills/ on the device and hot-reload on save.
What's actually load-bearing
A small set of skills is genuinely part of the runtime's contract — if you remove them, core flows break:
| Runtime-critical skill | Why it matters |
|---|---|
custos.skill_creator |
The in-chat skill authoring path (read_skill, write_skill_script, discover_api) |
custos.agents |
The delegation tools (list_agents, delegate); the only way an LLM hands work to a specialist |
custos.automation |
The write_automation and manage_automation tools that let the operator create automations from chat |
custos.helpers |
Shared utility functions (bearing, MGRS, CoT event building) used by other skills |
custos.memory |
Persistent cross-conversation facts |
custos.rag |
Vector store for semantic retrieval |
Everything else below is example content — demonstrations of what skills can do. Delete, replace, or rewrite them freely.
Impact levels
- READ_ONLY -- query, no side effects, no approval needed
- INFORMATIONAL -- logging or memory writes, no approval needed
- PROCEDURAL -- single user-visible action, no approval needed by default
- SIGNIFICANT -- approval gate fires before execution
- STRATEGIC -- approval gate fires; coarse/high-impact actions (package distribution, comms broadcasts, beacon activation)
- LETHAL -- approval gate fires; reserved for actions with irreversible kinetic consequences
Map Navigation and Visualization
custos.map_nav
Pan and zoom the map.
| Tool | Impact | Description |
|---|---|---|
focus_map |
READ_ONLY | Pan to a location without changing zoom |
zoom_map |
READ_ONLY | Zoom to a scale level |
custos.markers
Place, find, and delete map markers.
| Tool | Impact | Description |
|---|---|---|
place_marker |
PROCEDURAL | Place a marker at the specified location |
find_items |
READ_ONLY | Search for map items by callsign |
delete_markers |
SIGNIFICANT | Delete markers by name or geographic bounds |
custos.layers
Map layer visibility and imagery sources.
| Tool | Impact | Description |
|---|---|---|
list_layers |
READ_ONLY | List all overlay layers with visibility status |
toggle_layer |
PROCEDURAL | Toggle a layer on or off |
custos.drawing
Polygons, rectangles, circles, polylines.
| Tool | Impact | Description |
|---|---|---|
draw_polygon |
PROCEDURAL | Draw a closed polygon from lat/lon points |
draw_rectangle |
PROCEDURAL | Draw a rectangle from center and dimensions |
draw_circle |
PROCEDURAL | Draw a circle at center with radius |
custos.grg_builder
Gridded Reference Graphics overlays.
| Tool | Impact | Description |
|---|---|---|
build_grg |
PROCEDURAL | Place a GRG grid on map |
grg_bounds |
READ_ONLY | Get geographic bounds of the current GRG |
custos.spot_map
Spot reports with military categorization.
| Tool | Impact | Description |
|---|---|---|
create_spot_report |
PROCEDURAL | Create a categorized spot report marker |
Tactical Picture and Situational Awareness
custos.tactical_picture
Query the tactical picture.
| Tool | Impact | Description |
|---|---|---|
get_tactical_picture |
READ_ONLY | Summary of nearby friendly/hostile/unknown units and POIs |
get_self_position |
READ_ONLY | Operator's current position from ATAK self-marker |
find_nearby |
READ_ONLY | Find items within a radius, sorted by distance with bearing |
get_item_detail |
READ_ONLY | Deep drill-down on a single item |
measure_distance |
READ_ONLY | Distance and bearing between two points or items |
tactical_summary |
READ_ONLY | Statistical counts by affiliation, dimension, team |
find_by_type |
READ_ONLY | Filter items by CoT type, affiliation, or dimension |
custos.pattern_analysis
Movement pattern detection.
| Tool | Impact | Description |
|---|---|---|
analyze_movement |
READ_ONLY | Analyze a contact's movement for patterns and anomalies |
custos.threat_assessment
Route and position risk.
| Tool | Impact | Description |
|---|---|---|
assess_route_risk |
READ_ONLY | Analyze route exposure to hostile positions |
assess_position_risk |
READ_ONLY | Evaluate position threat from hostiles and terrain |
custos.tracks
Movement history.
| Tool | Impact | Description |
|---|---|---|
get_track_history |
READ_ONLY | Breadcrumb track history for a contact |
Communications and Contacts
custos.cot_comms
Send CoT events and chat messages.
| Tool | Impact | Description |
|---|---|---|
send_cot |
STRATEGIC | Broadcast a CoT event to all connected TAK users |
send_chat |
STRATEGIC | Send a GeoChat message to a contact or all-chat |
read_chat |
READ_ONLY | Read recent GeoChat messages |
custos.contacts
Team roster and presence.
| Tool | Impact | Description |
|---|---|---|
list_contacts |
READ_ONLY | List all known TAK contacts with status |
get_contact_detail |
READ_ONLY | Detailed info on a contact |
custos.comms_status
Network and TAK server health.
| Tool | Impact | Description |
|---|---|---|
get_network_status |
READ_ONLY | TAK server connectivity, active streams, network health |
Routes and Navigation Aids
custos.routes
Route planning.
| Tool | Impact | Description |
|---|---|---|
create_route |
PROCEDURAL | Create a route with named waypoints |
list_routes |
READ_ONLY | List all route polylines on the map |
get_elevation_profile |
READ_ONLY | Sample elevation along a line |
custos.dead_reckoning
Position prediction and ETA.
| Tool | Impact | Description |
|---|---|---|
predict_position |
READ_ONLY | Estimate future position based on speed and heading |
estimate_arrival |
READ_ONLY | ETA to reach a target |
custos.range_bearing
Range and bearing measurement.
| Tool | Impact | Description |
|---|---|---|
measure_rab |
READ_ONLY | Measure range and bearing between two points |
create_range_circle |
PROCEDURAL | Create a visible range circle on map |
custos.bullseye
Standard targeting reference protocol.
| Tool | Impact | Description |
|---|---|---|
create_bullseye |
PROCEDURAL | Create a bullseye reference point |
bearing_from_bullseye |
READ_ONLY | Get range and bearing from bullseye to target |
custos.bloodhound
Target tracking.
| Tool | Impact | Description |
|---|---|---|
track_target |
READ_ONLY | Real-time tracking data with bearing, distance, speed, intercept |
custos.resection
GPS-denied positioning.
| Tool | Impact | Description |
|---|---|---|
estimate_position |
READ_ONLY | Estimate position by intersecting bearing lines |
Casualty, Fires, and Emergency
custos.casualty
MEDEVAC, casualty cards, beacons.
| Tool | Impact | Description |
|---|---|---|
create_9line |
PROCEDURAL | Generate a formatted 9-line MEDEVAC request |
mark_hlz |
PROCEDURAL | Mark a Helicopter Landing Zone with metadata |
activate_beacon |
STRATEGIC | Activate an emergency beacon alert |
custos.fires
Call for fire, hostile tracking, danger close.
| Tool | Impact | Description |
|---|---|---|
hostile_list |
READ_ONLY | List all hostile markers with distance and bearing from self |
danger_close_check |
READ_ONLY | Check for friendlies within danger close range |
custos.illumination
Sun/moon position, illumination for NVG operations.
| Tool | Impact | Description |
|---|---|---|
get_illumination |
READ_ONLY | Sun/moon position, rise/set times, illumination %, phase |
custos.bpha
Battle Position Holding Area defensive graphics.
| Tool | Impact | Description |
|---|---|---|
create_bpha |
PROCEDURAL | Create a BPHA grid rectangle with optional subdivision |
Sensors and Detection
custos.detect_buildings
Vision-based building detection.
| Tool | Impact | Description |
|---|---|---|
detect_buildings |
PROCEDURAL | Capture map imagery and run building detection |
custos.sensor_fov
Sensor field-of-view cones.
| Tool | Impact | Description |
|---|---|---|
create_sensor_fov |
PROCEDURAL | Place a sensor FOV cone on the map |
custos.video
Video / ISR feeds.
| Tool | Impact | Description |
|---|---|---|
list_streams |
READ_ONLY | List available video streams |
Terrain and Coordinates
custos.terrain
Elevation, line of sight, viewshed.
| Tool | Impact | Description |
|---|---|---|
get_elevation |
READ_ONLY | Terrain elevation at a point |
line_of_sight |
READ_ONLY | Check terrain LOS between two positions |
elevation_profile |
READ_ONLY | Sample elevation along a line with gain/loss stats |
custos.coord_tools
Coordinate format conversion.
| Tool | Impact | Description |
|---|---|---|
convert_coords |
READ_ONLY | Convert between DD, DMS, UTM, MGRS |
get_declination |
READ_ONLY | Magnetic declination at a location |
custos.geocoding
Address to coordinates.
| Tool | Impact | Description |
|---|---|---|
geocode |
READ_ONLY | Convert street address to coordinates |
Geofencing
custos.geofence
Perimeter security and proximity alerts.
| Tool | Impact | Description |
|---|---|---|
create_geofence |
PROCEDURAL | Create circular geofence with entry/exit alerts |
list_geofences |
READ_ONLY | List active geofences with status |
Symbology and Vehicles
custos.mil_symbology
MIL-STD-2525 lookup and placement.
| Tool | Impact | Description |
|---|---|---|
decode_sidc |
READ_ONLY | Decode a 15-character SIDC into human-readable fields |
place_tactical_graphic |
PROCEDURAL | Place a MIL-STD-2525 tactical marker |
custos.vehicles
3D vehicle models.
| Tool | Impact | Description |
|---|---|---|
place_vehicle |
PROCEDURAL | Place a vehicle marker with type and heading |
Mission Planning and Data Exchange
custos.mission_brief
Auto-generate military reports.
| Tool | Impact | Description |
|---|---|---|
generate_sitrep |
READ_ONLY | Generate situation report from tactical picture |
generate_salute |
READ_ONLY | Generate a SALUTE report for a contact |
custos.mission_package
Mission package assembly and distribution.
| Tool | Impact | Description |
|---|---|---|
create_package |
PROCEDURAL | Create mission package with map items |
send_package |
STRATEGIC | Send mission package to contacts or broadcast |
custos.data_exchange
Import/export KML/GPX/GeoJSON.
| Tool | Impact | Description |
|---|---|---|
export_kml |
PROCEDURAL | Export map items to KML file |
import_file |
PROCEDURAL | Import KML, GPX, or GeoJSON |
custos.attachments
Files attached to map items.
| Tool | Impact | Description |
|---|---|---|
list_attachments |
READ_ONLY | List files attached to a map item |
custos.hashtags
Tag and search.
| Tool | Impact | Description |
|---|---|---|
tag_item |
PROCEDURAL | Apply a hashtag to a map item |
search_by_tag |
READ_ONLY | Search for map items by hashtag |
Memory and Knowledge
custos.memory
Persistent facts across conversations.
| Tool | Impact | Description |
|---|---|---|
remember |
INFORMATIONAL | Save a fact to persistent memory |
recall |
READ_ONLY | Search persistent memory by keyword |
forget |
INFORMATIONAL | Remove a fact from memory |
custos.rag
Vector store for semantic retrieval.
| Tool | Impact | Description |
|---|---|---|
rag_store |
PROCEDURAL | Store text in vector store with ID |
rag_retrieve |
READ_ONLY | Retrieve entries by semantic similarity |
Alerts and Notifications
custos.alerts
Notifications, tones, voice alerts.
| Tool | Impact | Description |
|---|---|---|
send_notification |
PROCEDURAL | Send a visible notification with title and message |
play_tone |
PROCEDURAL | Play an alert tone (alarm, warning, confirmation, error) |
speak_alert |
PROCEDURAL | Speak a message via text-to-speech |
Automation
custos.automation
Create and manage automations.
| Tool | Impact | Description |
|---|---|---|
write_automation |
SIGNIFICANT | Create an automation. Trigger type (schedule / interval / event) is auto-detected from the trigger expression; body is deterministic Lua invoked via tools.call. For LLM reasoning, call delegate from inside the body. |
manage_automation |
PROCEDURAL | List, toggle, or delete automations |
Authoring and Meta
custos.skill_creator
Author and debug skills at runtime.
| Tool | Impact | Description |
|---|---|---|
discover_api |
PROCEDURAL | Introspect Java classes, list packages, discover intents, list plugins |
find_skill |
READ_ONLY | Find the closest matching skill using semantic search |
read_skill |
PROCEDURAL | Read a skill's SKILL.md metadata |
read_skill_script |
PROCEDURAL | Read the content of a Lua script file |
write_skill |
SIGNIFICANT | Create or update a skill's SKILL.md metadata file |
write_skill_script |
SIGNIFICANT | Write a Lua script with validation and hot-reload |
create_skill |
SIGNIFICANT | Create a new skill directory with SKILL.md |
custos.agents
Delegate to specialist agents. Only available at the orchestrator level (hidden from sub-agents).
| Tool | Impact | Description |
|---|---|---|
list_agents |
READ_ONLY | List configured specialist agents and their roles |
delegate |
PROCEDURAL | Hand off a task to a named specialist agent |
custos.helpers
Shared utility functions for bearing, color, CoT, and coordinate operations.
| Tool | Impact | Description |
|---|---|---|
calc_bearing |
READ_ONLY | Bearing between two points |
compass_dir |
READ_ONLY | Degrees to compass direction |
format_mgrs |
READ_ONLY | Lat/lon to MGRS |
format_dms |
READ_ONLY | Lat/lon to DMS |
parse_color |
READ_ONLY | Hex color to ARGB int |
parse_cot_type |
READ_ONLY | CoT type string parser |
build_cot_event |
READ_ONLY | Build a CoT event object |
dispatch_cot_event |
STRATEGIC | Send CoT to ATAK pipeline |
resolve_item |
READ_ONLY | Find map item by UID/callsign |
Summary
| Metric | Value |
|---|---|
| Shipped skills | 44 |
| Shipped tools | 101 |
| Runtime-critical skills | 6 (skill_creator, agents, automation, helpers, memory, rag) |