devenv Options
These options are provided by the shared ScottyLabs devenv module. Import it in your devenv.nix:
imports = [ inputs.scottylabs.devenvModules.default ];
scottylabs.enable
Enable the shared ScottyLabs development configuration. Required for all
other scottylabs.* options to take effect. Also installs always-on
hooks: two that refresh and stage flake.lock (nix flake update) and
devenv.lock (devenv update) on every commit, and one that rejects
commits carrying AI tool co-author trailers.
Type: boolean
Default:
false
Declared by:
scottylabs.claude.enable
Enable Claude Code integration. Generates the .mcp.json configuration
with the devenv MCP server.
Type: boolean
Default:
true
Declared by:
scottylabs.conventionalCommits.enable
Enforce Conventional Commits on
git commit via the commitizen git hook. Commit messages that do not
match the conventional format are rejected at commit time.
Type: boolean
Default:
true
Declared by:
scottylabs.deno.enable
Enable the Deno/JavaScript development toolchain. Adds
Deno,
oxlint (denying the
correctness, suspicious, pedantic, and perf categories),
oxfmt, and
tsgolint on PATH for
oxlint --type-aware. Runs oxlint, deno check, and deno test on
every commit.
Type: boolean
Default:
false
Declared by:
scottylabs.deno.react.enable
Add the
react
and
jsx-a11y
plugins to oxlint.
Type: boolean
Default:
false
Declared by:
scottylabs.deno.svelte.enable
Add the
svelte-check
pre-commit hook.
Type: boolean
Default:
false
Declared by:
scottylabs.deno.svelte.dir
The SvelteKit app directory, relative to the project root. When
svelte.enable is set, deno install and svelte-kit sync run here
on shell entry so svelte-check has node_modules and the generated
.svelte-kit types available.
Type: string
Default:
"."
Declared by:
scottylabs.garage.enable
Enable a local Garage S3 instance
for development. Creates a bucket named after scottylabs.project.name
and exports S3_ENDPOINT, S3_REGION, S3_ACCESS_KEY,
S3_SECRET_KEY, and S3_BUCKET into the shell environment.
Type: boolean
Default:
false
Declared by:
scottylabs.garage.accessKey
S3 access key for the project bucket
Type: string
Default:
config.scottylabs.project.name
Declared by:
scottylabs.garage.secretKey
S3 secret key for the project bucket
Type: string
Default:
"${config.scottylabs.project.name}admin"
Declared by:
scottylabs.kennel.config
The generated kennel.json derivation that the kennel builder evaluates at build time
Type: package (read only)
Declared by:
scottylabs.kennel.previewDeployments
Deploy a preview environment for each open pull request. Disable for
singleton services such as bots, where a preview would run a second
instance alongside production. When disabled, pull request commits
still build and report kennel/build, but kennel does not deploy the
preview.
Type: boolean
Default:
true
Declared by:
scottylabs.kennel.services
Backend services deployed by kennel. Each key must match a devenv process name. Kennel builds the corresponding flake package and deploys it as a systemd transient unit.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
scottylabs.kennel.services.<name>.customDomain
Custom domain for this service
Type: null or string
Default:
null
Declared by:
scottylabs.kennel.sites
Static sites deployed by kennel. Each key names a site. Kennel builds the corresponding flake package and serves it via Caddy’s file server.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
scottylabs.kennel.sites.<name>.customDomain
Custom domain for this static site
Type: null or string
Default:
null
Declared by:
scottylabs.kennel.sites.<name>.spa
Serve index.html for all routes
Type: boolean
Default:
false
Declared by:
scottylabs.postgres.enable
Enable a local PostgreSQL 18 instance with Unix socket access. Creates
an initial database named after scottylabs.project.name and exports
DATABASE_URL into the shell environment.
Type: boolean
Default:
false
Declared by:
scottylabs.postgres.extensions
PostgreSQL extensions as a function of the extensions set
Type: function that evaluates to a(n) list of package
Default:
e: [ e.pg_uuidv7 ]
Declared by:
scottylabs.project.name
Used for database naming, log filtering, and secrets path resolution
Type: string
Declared by:
scottylabs.python.enable
Enable the Python development toolchain. Manages a virtual environment
with uv (running uv sync on shell entry
once a pyproject.toml exists), adds ruff
(lint pre-commit hook, formatting via treefmt’s ruff-format) and
ty (type-check pre-commit hook) on
PATH.
Type: boolean
Default:
false
Declared by:
scottylabs.ricochet.enable
Run a local OAuth relay on 127.0.0.1:8090 for development, the
loopback callback the dev Keycloak client is registered against.
Enable it alongside oidc_client to complete an OAuth flow locally the
way production does: the IdP redirects to the relay, which forwards the
authorization code on to your service’s own callback.
Type: boolean
Default:
false
Declared by:
scottylabs.ricochet.appUrl
Public URL the service is reached at in local development, exported as
APP_URL so it can build OAuth redirect targets and absolute links.
This is the development value only; deployed environments receive
APP_URL from kennel, derived from the deployment domain (see
Deploying a Project), so
it is never declared in secretspec.toml.
Type: string
Declared by:
scottylabs.rust.enable
Enable the Rust development toolchain. Configures nightly Rust with
cranelift (fast
debug-mode codegen), clippy, rustfmt,
wild/lld linker, and
sccache backed by the org’s S3
cache. Sets CARGO_TARGET_DIR to .devenv/state/target. Clippy and
cargo test run on every commit.
Type: boolean
Default:
false
Declared by:
scottylabs.rust.cranelift.excludePackages
Crate names forced to the LLVM backend instead of cranelift. Some crates use features that cranelift does not support (FFI symbol emission, linker sections).
Type: list of string
Default:
[
"aws-lc-sys"
"aws-lc-rs"
"rustls"
]
Declared by:
scottylabs.rust.nativeBuildInputs
Extra packages for crates that link C libraries (e.g.
[ pkgs.pkg-config pkgs.openssl ]). Prefer rustls over native-tls
for TLS (e.g.
reqwest = { default-features = false, features = ["rustls-tls"] }) to
avoid needing OpenSSL.
Type: list of package
Default:
[ ]
Declared by:
scottylabs.secrets.enable
When scottylabs.enable = true, the openbao (bao) and secretspec
CLIs are added to the shell, BAO_ADDR is set for OpenBao
authentication, and every secret secretspec resolves is exported into
the shell environment. Resolution is enabled per project through the
secretspec block in devenv.yaml (see
Secrets).
Type: boolean
Default:
true
Declared by:
scottylabs.sqlite.enable
Enable SQLite for local development. Adds the sqlite package and
exports DATABASE_PATH pointing to a database file in the devenv state
directory.
Type: boolean
Default:
false
Declared by:
scottylabs.valkey.enable
Enable a local Valkey instance for development.
Layers services.redis.package = pkgs.valkey under the hood, so the
upstream services.redis devenv module drives the process while the
binary is the wire-compatible Valkey fork. Adds pkgs.valkey to the
shell so valkey-cli is on the path.
Type: boolean
Default:
false
Declared by: