Skip to main content

Build & Certificate Commands

The builds and certs commands manage test binary compilation and code signing certificates. Builds compile Go security tests into signed binaries that agents download and execute. Certificates are used to sign those binaries so they are trusted on target endpoints.

Build Commands

achilles builds <subcommand> [flags]

Subcommands

SubcommandDescription
showShow build info for a test
createBuild and sign a test binary
downloadDownload a built test binary
deleteDelete a build artifact
depsList embed dependencies for a test
upload-depUpload an embed dependency

builds show

Display build information for a test, including binary metadata, signing status, and timestamps.

achilles builds show <uuid>

Example:

achilles builds show 7659eeba-f315-440e-9882-4aa015d68b27

builds create

Trigger a build (cross-compilation and code signing) for a test binary.

achilles builds create <uuid>

The backend compiles the Go test source, cross-compiles for the target platform, and signs the binary with the active certificate.

Example:

achilles builds create 7659eeba-f315-440e-9882-4aa015d68b27
  Building 7659eeba-f315-440e-9882-4aa015d68b27...
✓ Built T1486-Ransomware — 2.4MB, signed: true
info

Builds require Go to be installed on the backend server. On serverless deployments (Vercel), the build system is unavailable and returns a 503 error.

builds download

Download a compiled test binary to your local machine.

achilles builds download <uuid> [flags]

Flags:

FlagShortTypeDescription
--output-ostringOutput file path (defaults to original filename)

Example:

# Download with original filename
achilles builds download 7659eeba-f315-440e-9882-4aa015d68b27

# Download to a specific path
achilles builds download 7659eeba-f315-440e-9882-4aa015d68b27 -o ./test-binary.exe

builds delete

Delete a build artifact from the server.

achilles builds delete <uuid>

builds deps

List embed dependencies for a test. Some tests require additional binaries or data files to be embedded during build.

achilles builds deps <uuid>

Example:

achilles builds deps 7659eeba-f315-440e-9882-4aa015d68b27
  Name                        Required    Present    Source    Size
──────────────────────── ───────── ──────── ──────── ──────────
validator-defender.exe yes yes auto 1.2MB
mimikatz.exe yes no upload —
config.json no yes upload 4.1KB

The Source column indicates:

  • auto: Source-built from Go during the build process
  • upload: Must be manually uploaded before building

builds upload-dep

Upload an embed dependency file for a test.

achilles builds upload-dep <uuid> --file <path>

Flags:

FlagTypeRequiredDescription
--filestringYesPath to the dependency file

Example:

achilles builds upload-dep 7659eeba-f315-440e-9882-4aa015d68b27 \
--file ./mimikatz.exe
warning

Only external (non-source-built) dependencies can be uploaded. Source-built dependencies are compiled automatically during the build process.


Certificate Commands

achilles certs <subcommand> [flags]

Certificates are used to code-sign test binaries. Signed binaries are less likely to be flagged by antivirus before they can execute their security test logic.

Subcommands

SubcommandDescription
listList all certificates
uploadUpload a PFX/P12 certificate
generateGenerate a self-signed certificate
activateSet a certificate as the active signing cert
renameRename a certificate label
downloadDownload a certificate PFX file
deleteDelete a certificate

certs list

List all stored certificates with their status.

achilles certs list

Example output:

  ID                Label            CN                    Org               Active    Valid Until
──────────────── ─────────────── ──────────────────── ──────────────── ─────── ────────────
cert-1710859200 Production MyCompany Signing MyCompany Ltd ★ 12/31/2026
cert-1710945600 Dev Testing Dev Signer Dev Team — 6/30/2026

The active certificate (marked with a star) is used for all build signing operations.

certs upload

Upload an existing PFX/P12 certificate file.

achilles certs upload --file <path> --password <password> [flags]

Flags:

FlagTypeRequiredDescription
--filestringYesPath to PFX/P12 file
--passwordstringYesCertificate password
--labelstringNoDisplay label

Example:

achilles certs upload \
--file ./signing-cert.pfx \
--password "my-cert-password" \
--label "Production Signing"
  ✓ Certificate uploaded: MyCompany Signing (cert-1710859200)
info

The system supports a maximum of 5 certificates (uploaded + generated combined).

certs generate

Generate a new self-signed certificate for code signing.

achilles certs generate \
--cn <common-name> \
--org <organization> \
--country <country-code> \
[flags]

Flags:

FlagTypeRequiredDescription
--cnstringYesCommon Name (e.g., "MyCompany Code Signing")
--orgstringYesOrganization name
--countrystringYesTwo-letter country code (e.g., "US", "GB")
--labelstringNoDisplay label
--passwordstringNoCertificate password

Example:

achilles certs generate \
--cn "ProjectAchilles Test Signing" \
--org "Security Team" \
--country US \
--label "Dev Testing"
  Generating certificate...
✓ Certificate generated: ProjectAchilles Test Signing (cert-1710945600)

certs activate

Set a certificate as the active signing certificate. All subsequent builds will use this certificate.

achilles certs activate <id>

Example:

achilles certs activate cert-1710859200

certs rename

Change the display label of a certificate.

achilles certs rename <id> <label>

Example:

achilles certs rename cert-1710859200 "Production v2"

certs download

Download a certificate's PFX file.

achilles certs download <id> [flags]

Flags:

FlagShortTypeDescription
--output-ostringOutput file path (defaults to cert-<id>.pfx)

Example:

achilles certs download cert-1710859200 -o ./backup-cert.pfx

certs delete

Delete a certificate from the server.

achilles certs delete <id>
warning

If you delete the active certificate, builds will proceed unsigned until you activate another certificate.

Signing Overview

The build system uses different signing strategies per platform:

PlatformSigning MethodCertificate Required
WindowsAuthenticode (osslsigncode)Yes -- uses active PFX cert
macOSAd-hoc (rcodesign)No -- signs without certificate
LinuxNoneNo

Signing failures are non-fatal -- if signing fails, the build completes and the binary is delivered unsigned.