BUILDBOX-CASD(1)

πŸ“¦
version 1.4.16 Β· 2 versions
, in ubuntu stonking

πŸ¦‹ buildbox-casd β€” BUILDBOX-CASD(1) πŸ¦‹

okay bestie, come SIT. this is the User Commands manual for buildbox-casd, and it's a long one so grab a snack πŸ’– (this is part 1 of 2, we're not even close to done yet)


✨ NAME ✨

buildbox-casd β€” literally just buildbox-casd. that's the name, that's the whole name. short, sweet, iconic πŸ‘‘


🌸 SYNOPSIS 🌸

buildbox-casd

no args, no drama. she just runs. πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

so buildbox-casd is a whole buffet of flags, and fr fr there are a LOT of them. every single one is marked [optional], which is giving "no pressure, choose your own adventure". here's the full menu, no cap, nothing skipped 🫢

πŸŽ€ the flags πŸŽ€

✨ the "all services" bunch (she does everything at once, main character energy) ✨

  • --help β€” shows you how to use her and dips. that's it, that's the whole flag.
  • --version β€” prints the version info and bounces. [optional]
  • --remote β€” the URL for all the services. one link to rule them all. [optional]
  • --instance β€” the instance for all the services. [optional]
  • --server-cert β€” server TLS certificate for all services (PEM-encoded). [optional]
  • --client-key β€” client private TLS key for all services (PEM-encoded). [optional]
  • --client-cert β€” client TLS certificate for all services (PEM-encoded). [optional]
  • --access-token β€” the auth token for all services (JWT, OAuth token, whatever you got), and it gets included as an HTTP Authorization bearer token. [optional]
  • --token-reload-interval β€” the default access token refresh timeout. [optional]
  • --googleapi-auth β€” use GoogleAPIAuth for all services. [optional]
  • --credential-helper β€” the credential helper executable for all services. [optional]
  • --retry-limit β€” retry limit for gRPC errors, for all services. [optional]
  • --retry-delay β€” retry delay for gRPC errors, for all services. [optional]
  • --retry-on-code β€” the gRPC status code(s), as string(s), to retry on for all services, e.g. 'UNKNOWN', 'INTERNAL'. [optional]
  • --request-timeout β€” timeout for gRPC requests for all services. set it to 0 to disable the timeout entirely. [optional]
  • --min-throughput β€” minimum throughput for gRPC requests for all services, in bytes per seconds. the value may be suffixed with K, M, G or T. [optional]
  • --keepalive-time β€” the gRPC keepalive pings period for all services. set it to 0 to disable keepalive pings. [optional]
  • --load-balancing-policy β€” gRPC load balancing policy for all services. the valid options are 'round_robin' and 'grpclb'. [optional]

🧊 the CAS service squad 🧊

  • --cas-remote β€” URL for the CAS service. [optional]
  • --cas-instance β€” name of the CAS instance. [optional]
  • --cas-server-cert β€” server TLS certificate for CAS (PEM-encoded). [optional]
  • --cas-client-key β€” client private TLS key for CAS (PEM-encoded). [optional]
  • --cas-client-cert β€” client TLS certificate for CAS (PEM-encoded). [optional]
  • --cas-access-token β€” auth token for CAS (JWT, OAuth token etc), included as an HTTP Authorization bearer token. [optional]
  • --cas-token-reload-interval β€” access token refresh timeout for the CAS service. [optional]
  • --cas-googleapi-auth β€” use GoogleAPIAuth for the CAS service. [optional]
  • --cas-credential-helper β€” credential helper executable for the CAS service. [optional]
  • --cas-retry-limit β€” retry limit for gRPC errors for the CAS service. [optional]
  • --cas-retry-delay β€” retry delay for gRPC errors for the CAS service. [optional]
  • --cas-retry-on-code β€” the gRPC status code(s), as string(s), to retry on for the CAS service, e.g., 'UNKNOWN', 'INTERNAL'. [optional]
  • --cas-request-timeout β€” timeout for gRPC requests for the CAS service. set it to 0 to disable the timeout. [optional]
  • --cas-min-throughput β€” minimum throughput for gRPC requests for the CAS service, in bytes per seconds. the value may be suffixed with K, M, G or T. [optional]
  • --cas-keepalive-time β€” the gRPC keepalive pings period for the CAS service. set it to 0 to disable keepalive pings. [optional]
  • --cas-load-balancing-policy β€” gRPC load balancing policy for the CAS service. valid options are 'round_robin' and 'grpclb'. [optional]

🏠 the local server corner 🏠

  • --server-instance β€” [Deprecated] bestie, use --local-server-instance instead, this one is giving expired. [optional]
  • --local-server-instance β€” create an extra local CAS server instance. super useful when --cas-remote is specified. [optional]
  • --digest-function β€” set a custom digest function. default: SHA256. supported functions: SHA512, SHA384, SHA256, SHA1, MD5. [optional]

πŸ“ the Action Cache crew πŸ“

  • --ac-remote β€” URL for the Action Cache service. [optional]
  • --ac-instance β€” name of the Action Cache instance. [optional]
  • --ac-server-cert β€” server TLS certificate for Action Cache (PEM-encoded). [optional]
  • --ac-client-key β€” client private TLS key for Action Cache (PEM-encoded). [optional]
  • --ac-client-cert β€” client TLS certificate for Action Cache (PEM-encoded). [optional]
  • --ac-access-token β€” auth token for Action Cache (JWT, OAuth token etc), included as an HTTP Authorization bearer token. [optional]
  • --ac-token-reload-interval β€” access token refresh timeout for the Action Cache service. [optional]
  • --ac-googleapi-auth β€” use GoogleAPIAuth for the Action Cache service. [optional]
  • --ac-credential-helper β€” credential helper executable for the Action Cache service. [optional]
  • --ac-retry-limit β€” retry limit for gRPC errors for the Action Cache service. [optional]
  • --ac-retry-delay β€” retry delay for gRPC errors for the Action Cache service. [optional]
  • --ac-retry-on-code β€” the gRPC status code(s), as string(s), to retry on for the Action Cache service, e.g., 'UNKNOWN', 'INTERNAL'. [optional]
  • --ac-request-timeout β€” timeout for gRPC requests for the Action Cache service. set it to 0 to disable the timeout. [optional]
  • --ac-min-throughput β€” minimum throughput for gRPC requests for the Action Cache service, in bytes per seconds. the value may be suffixed with K, M, G or T. [optional]
  • --ac-keepalive-time β€” the gRPC keepalive pings period for the Action Cache service. set it to 0 to disable keepalive pings. [optional]
  • --ac-load-balancing-policy β€” gRPC load balancing policy for the Action Cache service. valid options are 'round_robin' and 'grpclb'. [optional]

🌈 the Remote Asset gang 🌈

  • --ra-remote β€” URL for the Remote Asset service. [optional]
  • --ra-instance β€” name of the Remote Asset instance. [optional]
  • --ra-server-cert β€” server TLS certificate for Remote Asset (PEM-encoded). [optional]
  • --ra-client-key β€” client private TLS key for Remote Asset (PEM-encoded). [optional]
  • --ra-client-cert β€” client TLS certificate for Remote Asset (PEM-encoded). [optional]
  • --ra-access-token β€” auth token for Remote Asset (JWT, OAuth token etc), included as an HTTP Authorization bearer token. [optional]
  • --ra-token-reload-interval β€” access token refresh timeout for the Remote Asset service. [optional]
  • --ra-googleapi-auth β€” use GoogleAPIAuth for the Remote Asset service. [optional]
  • --ra-credential-helper β€” credential helper executable for the Remote Asset service. [optional]
  • --ra-retry-limit β€” retry limit for gRPC errors for the Remote Asset service. [optional]
  • --ra-retry-delay β€” retry delay for gRPC errors for the Remote Asset service. [optional]
  • --ra-retry-on-code β€” the gRPC status code(s), as string(s), to retry on for the Remote Asset service, e.g., 'UNKNOWN', 'INTERNAL'. [optional]
  • --ra-request-timeout β€” timeout for gRPC requests for the Remote Asset service. set it to 0 to disable the timeout. [optional]
  • --ra-min-throughput β€” minimum throughput for gRPC requests for the Remote Asset service, in bytes per seconds. the value may be suffixed with K, M, G or T. [optional]
  • --ra-keepalive-time β€” the gRPC keepalive pings period for the Remote Asset service. set it to 0 to disable keepalive pings. [optional]
  • --ra-load-balancing-policy β€” gRPC load balancing policy for the Remote Asset service. valid options are 'round_robin' and 'grpclb'. [optional]

πŸ”₯ the Execution service (she runs things, literally) πŸ”₯

  • --exec-remote β€” URL for the Execution service. [optional]
  • --exec-instance β€” name of the Execution instance. [optional]
  • --exec-server-cert β€” server TLS certificate for Execution (PEM-encoded). [optional]
  • --exec-client-key β€” client private TLS key for Execution (PEM-encoded). [optional]
  • --exec-client-cert β€” client TLS certificate for Execution (PEM-encoded). [optional]
  • --exec-access-token β€” auth token for Execution (JWT, OAuth token etc), included as an HTTP Authorization bearer token. [optional]
  • --exec-token-reload-interval β€” access token refresh timeout for the Execution service. [optional]
  • --exec-googleapi-auth β€” use GoogleAPIAuth for the Execution service. [optional]
  • --exec-credential-helper β€” credential helper executable for the Execution service. [optional]
  • --exec-retry-limit β€” retry limit for gRPC errors for the Execution service. [optional]
  • --exec-retry-delay β€” retry delay for gRPC errors for the Execution service. [optional]
  • --exec-retry-on-code β€” the gRPC status code(s), as string(s), to retry on for the Execution service, e.g., 'UNKNOWN', 'INTERNAL'. [optional]
  • --exec-request-timeout β€” timeout for gRPC requests for the Execution service. set it to 0 to disable the timeout. [optional]
  • --exec-min-throughput β€” minimum throughput for gRPC requests for the Execution service, in bytes per seconds. the value may be suffixed with K, M, G or T. [optional]
  • --exec-keepalive-time β€” the gRPC keepalive pings period for the Execution service. set it to 0 to disable keepalive pings. [optional]
  • --exec-load-balancing-policy β€” gRPC load balancing policy for the Execution service. valid options are 'round_robin' and 'grpclb'. [optional]

🫢 proxy, binding & local cache (the last chunk of this part, we're so close) 🫢

  • --proxy-instance β€” name of the proxy instance. you can specify multiple values of PROXY_INSTANCE[:REMOTE_INSTANCE]. if REMOTE_INSTANCE exists, the proxy instance uses it for remote connections, and it overrides the --*instance options. [optional]
  • --bind β€” bind to address:port or a UNIX socket in unix:path. multiple addresses can be specified. [optional]
  • --unix-socket-group β€” if you're binding to a UNIX socket, this updates its group ownership. [optional]
  • --unix-socket-mode β€” if you're binding to a UNIX socket, this updates its mode in octal format, e.g. 0775. [optional]
  • --permit-keepalive-time β€” the minimum allowed time in seconds between keepalive pings coming from clients. [optional]
  • --quota-high β€” maximum local cache size (e.g., 50G or 2T). [optional]
  • --quota-low β€” local cache size to retain on LRU expiry, either as an absolute size or as a percentage of quota-high. [optional, default = "50%"]
  • --reserved β€” reserved disk space (the headroom that gets left when quota-high gets automatically reduced). [optional, default = "2G"]
  • --protect-session-blobs β€” do not expire blobs created or used in the current session. [optional, default = false]

okay and that's genuinely just the top of the iceberg 🧚 part 2 is coming and she has more to say, so don't go anywhere bestie πŸ’–

  • --fail-fast-during-cleanup β€” bestie, the moment LRU cleanup is happening, write requests get rejected IMMEDIATELY with RESOURCE_EXHAUSTED 🚫 no waiting, no queuing, just nope. (optional, default = false)
  • --buildbox-run β€” the absolute path to your runner executable, which is what switches on the local execution service ✨ (optional)
  • --runner-arg β€” the args you wanna hand off to buildbox-run whenever buildbox-casd runs a job πŸƒ (optional)
  • --jobs β€” max number of jobs running at the same time for local execution. gather round, the limit is real 😌 (optional, default = 4)
  • --exec-hybrid-queue-limit β€” the maximum queue length for local execution when you're in a proxy instance 🧚 (optional)
  • --exec-fallback-to-local β€” if the remote server can't schedule what the client asked for (like, say, it's throttling y'all), it falls back to local execution 🫢 and heads up: those fallback executions are excluded from the --exec-hybrid-queue-limit value. You need --buildbox-run set for this to even work. (optional, default = false)
  • --cache-failures β€” caches local actions that exited with a non-zero exit code πŸ’€ (optional, default = true)
  • --findmissingblobs-cache-ttl β€” how many seconds to cache the results of FindMissingBlobs() calls when you're in proxy mode ⏳ (optional, default = 0)
  • --capture-allow-file-moves β€” when a LocalCAS capture request has its move_files flag set, this attempts to move files into the CAS instead. That's a win because it avoids a copy only when the file lives on the same filesystem as the LOCAL_CACHE directory AND is owned by the user running casd πŸ‘‘
⚠️ NOTE: only turn this on if your clients can be trusted not to break the consistency of the storage. Like, for real.

(optional, default = false)

  • --metrics-mode β€” Metrics Mode: --metrics-mode=MODE β€” the options for MODE are udp://<hostname>:<port>, file:///path/to/file, and stderr πŸ“Š (optional)
  • --metrics-publish-interval β€” how often metrics get published πŸ•’ (optional, default = 15)
  • --metrics-prefix β€” the prefix stuck onto your metric names 🏷️ (optional, default = "buildboxcasd")
  • --read-only-remote β€” says whether casd should update the remote CAS with local build artifacts πŸ€” (optional)
  • --store-writable-objects β€” stores object files with writable mode (644) πŸ”“ (optional)
  • --num-digest-threads β€” how many threads hash files into digests. Default = min(hardware-concurrency,16) 🧡 (optional)
  • --num-io-threads β€” how many threads proxy CAS instances use to upload/download blobs to and from the remote CAS. Default = min(hardware-concurrency*2,64) πŸš€ (optional)
  • --shutdown-deadline β€” force-terminate pending requests this many seconds after a shutdown was requested (SIGINT/SIGTERM) ⏰ (optional)
  • --allow-pre-unstage-command β€” a list of absolute paths to executables that are allowed to run before staged directories get unstaged πŸ’… (optional)
  • --ac-validation-cache-ttl β€” how many seconds to cache the results of GetActionResult() validations when in proxy mode πŸ—‚οΈ (optional, default = 0)
  • --log-level β€” the log level. Your choices are debug, error, info, trace, warning πŸ“ (optional, default = "error")
  • --verbose β€” just sets the log level to debug for you, no thoughts, head empty πŸ› (optional)
  • Cache path β€” POSITIONAL (required) πŸ“

and that's the whole page, bestie, we ATE πŸ’…βœ¨ this was buildbox-casd version 1.4.16, hailing from August 2026, and yes, it is still living its BUILDBOX-CASD(1) main character era πŸ‘‘πŸŒˆ go forth and cache responsibly πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from