Quick Install

Get the starter kit on your device in under a minute

44 skills, 100+ tools, MIT-licensed. The CUST/OS plugin ships with zero skills by design — this is the reference library. Pick whichever path works in your browser. Both do the same thing.

  1. 01

    Before you start

    Four things the installer can't do for you.

    1. 1.1Install ATAK-CIV

      CUST/OS is an ATAK plugin — it runs inside ATAK and won't do anything without it. Install the free civilian build (ATAK-CIV) from the Play Store first. If you already have ATAK, skip this step.

      Get ATAK on Google Play
    2. 1.2Install the CUST/OS plugin

      The plugin APK must be on your phone before the installer can push skills to it. Grab it from the Play Store — it's free and registers with ATAK automatically.

      Get CUST/OS on Google Play
    3. 1.3Enable USB debugging

      Settings → About phone → tap Build number 7 times → back → Developer options → USB debugging. Steps vary slightly by OEM; the principle is the same everywhere.

    4. 1.4Plug the phone in with a data cable

      Charge-only cables are common and silently break adb. Most USB-C cables that shipped with a phone are data-capable. If your phone doesn't show up, try another cable before anything else.

  2. 02

    Install the starter kit

    Skills, tools, config, and scratches — pushed to /sdcard/atak/custos/. Your browser decides which path is easier.

  3. 03

    Model weights

    The starter custos.yaml enables on-device providers whose weights aren't bundled in the starter kit — they're too large for git, and some (like Gemma) require accepting a license on Hugging Face. Download each file, then drop it in below.

    Filenames matter. The paths in custos.yaml reference each model by name. If you change a filename, edit the matching url: line in the config.

    Skipping a model is fine — just the matching provider will show offline in the Status panel. You can add it later without re-doing anything else.

    Full instructions, including how to swap in different weights or pair .jinja chat templates with llama.cpp, live in the repo's models/README.md.

  4. 04

    Step off

    Everything's in the ruck. Time to put it to work. The agent's callsign is Custos out of the box (edit custos.yaml if you'd rather be on net with someone else).

    First contact

    Three ways to make sure the stack is live.

    1. RECONOpen ATAK, tap the CUST/OS tile

      You'll find it in the ATAK NavBar. The first launch initializes your on-device models and wires up the inference router — give it 10–20 seconds.

    2. RADIO CHECKHold PTT and talk to Custos

      Push the microphone, say it out loud, release. Try:

      "Custos, what skills do you have?"
      "Drop a hostile marker at my location, callsign Tango-1."
      "Zoom to 38.8951, -77.0364."
    3. SITREPOpen the Status panel

      Every provider you installed models for should show ONLINE within 10–20 seconds. Any that stay offline: tap the row for the error. Usually it's a missing weights file or a filename mismatch between the model and custos.yaml.

    Cleared hot. Go do something operational.

If something goes wrong

Troubleshooting

The one-click installer talks to your phone over USB. A few failure modes are common — all of them fixable in a minute.

"The device is already in used by another program"

Another program on your computer has already claimed the USB connection to your phone. On macOS and Linux, only one program can hold a USB interface at a time — so if Android Studio, IntelliJ, a CLI adb, scrcpy, or a previous browser tab grabbed it first, the installer can't.

Fix:

  1. Fully quit Android Studio / IntelliJ with Cmd+Q (closing the window isn't enough — they keep running).
  2. If you have adb installed on the command line, run adb kill-server to stop any leftover daemon.
  3. Close any other browser tab that may have opened this install page.
  4. Unplug and replug your phone.
  5. Retry.

If you frequently use IntelliJ IDEA Ultimate or Android Studio and this is annoying, the terminal install on the right shares the adb daemon with those tools instead of fighting it — consider using that path instead.

My phone doesn't appear in the permission dialog

The browser pops up a device picker, but your phone isn't listed. A few things to check:

  • USB debugging is on. Settings → About phone → tap Build number 7 times → back → Developer options → USB debugging. Toggle it off and back on if it's already on.
  • Data-capable cable. Many USB-C cables are charge-only and silently fail for adb. Try the cable that came with the phone or a known-good data cable.
  • USB mode isn't "Charging only". When you plug the phone in, pull down the notification shade — if it says "Charging this device via USB" only, tap it and switch to "File transfer" or "PTP". (The mode label varies by OEM.)
  • Try another USB port, especially if you're going through a hub. Plug directly into your computer.
My phone shows up, but the "Allow USB debugging" prompt never appears

The phone may have remembered a previous "Deny" answer, or the prompt fired while the screen was off and you missed it.

Fix: Unlock the phone and keep it awake. Go to Settings → Developer options → Revoke USB debugging authorizations and tap it. Unplug and replug. Retry — the prompt will fire again, and this time, tap Allow (and consider ticking "Always allow from this computer" if you plan to reinstall).

Install fails mid-way / connection drops

Usually a wiggled cable, an auto-locking phone, or a laptop going to sleep.

Fix: keep the phone awake while installing (Settings → Display → Sleep → longest option, or enable "Stay awake while charging" in Developer options). Use a short, sturdy USB cable. Don't touch the cable during install — it's only ~30 seconds. Click Install again to retry.

It says it succeeded but CUST/OS doesn't see the skills

The plugin hot-reloads the skills directory on each app focus or on skill change, but if you had CUST/OS open during install, force-close and reopen the plugin from ATAK to pick up the new files. You can verify the files landed with:

adb shell ls /sdcard/atak/custos/skills/

You should see ~44 custos.* directories. If the list is empty or short, something aborted silently — retry.

Still stuck? Open an issue on GitHub or ask in Discussions. Include the exact error text and your browser + OS.

Prefer to do it yourself? Clone the starter kit and read the getting-started tutorial. Same files, same destinations, written out step by step.