Files
CST-agent/docs/README-windows.md
T

2.6 KiB

CST-Agent on Windows

Release layout

cst-agent.exe
busybox.exe              # built from busybox-w32
libwinpthread-1.dll      # MinGW runtime (required)
LICENSE.busybox
README-windows.md

Prebuilt tree from Linux cross-compile: agent/dist/windows-x86_64/.

Build (MinGW-w64 cross from Linux)

cd agent
# 1) third-party: curl (Schannel) + PDCurses + busybox-w32
./scripts/build_third_party_mingw.sh all
# sources:
#   https://github.com/rmyorston/busybox-w32.git
#   https://github.com/curl/curl.git
#   https://github.com/wmcbrine/PDCurses.git
# Unix busybox (optional, Linux/Termux bundle):
#   ./scripts/build_third_party_mingw.sh busybox-unix
#   https://github.com/mirror/busybox.git

# 2) headless
cmake -B build-win -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-w64-x86_64.cmake \
  -DCST_BUILD_TUI=OFF -DCMAKE_PREFIX_PATH=$PWD/third_party/prefix-mingw
cmake --build build-win

# 3) TUI (PDCurses)
cmake -B build-win-tui -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-w64-x86_64.cmake \
  -DCST_BUILD_TUI=ON -DCMAKE_PREFIX_PATH=$PWD/third_party/prefix-mingw \
  -DPDCurses_ROOT=$PWD/third_party/prefix-mingw
cmake --build build-win-tui

Copy build-win-tui/cst-agent.exe, third_party/busybox/busybox.exe, and libwinpthread-1.dll into one folder.

Build natively on Windows (MSYS2)

The CMake build also works directly on Windows with MSYS2's mingw-w64 toolchain -- no separate Linux host needed:

# in an MSYS2 MINGW64 shell
pacman -S --needed --noconfirm \
  mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make \
  mingw-w64-x86_64-curl mingw-w64-x86_64-pdcurses

cd agent
cmake -B build-win -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build-win --target cst-agent -j"$(nproc)"

CST_BUILD_TUI=ON (the default) picks up MSYS2's PDCurses automatically, including its include/pdcurses/ layout; set -DPDCurses_ROOT=... only for a custom PDCurses.

Two differences from the cross-build release layout above:

  • Extra DLLs. MSYS2's curl package is the shared OpenSSL build, so the executable needs its whole dependency chain beside it. Collect it with ldd build-win/cst-agent.exe | grep mingw64.
  • Only build the cst-agent target. Some sources under tests/ are POSIX-only (two-argument mkdir, setenv, arpa/inet.h, symlink) and do not compile with MinGW. The main program is unaffected.

Run

set CST_API_KEY=...
cst-agent.exe --headless --workspace . --prompt "echo hi"
cst-agent.exe --workspace .

Shell: bundled busybox.exe sh -c ... unless CST_SHELL is set. Credentials: %APPDATA%\cst-agent\credentials (or console prompt).