CodeWork
Customize

Settings

Every key in settings.jsonc, where CodeWork looks for it, and how user and project settings combine.

CodeWork is configured with settings.jsonc files. JSON with comments and trailing commas is fine. A plain settings.json is read when there’s no .jsonc.

Where Settings Live

LayerFileUse it for
User~/.codework/settings.jsoncYour defaults in every project
Project.codework/settings.jsonc in the nearest ancestor directoryWhat the whole team should get. Commit this file.

The project layer is applied over the user layer. model and retry fields from the project win; plugins and models lists from both layers are combined, user first.

CodeWork re-reads settings at every turn, so a change applies from your next message without a restart. A file that exists but can’t be parsed fails the session with its path and the key it didn’t accept, rather than being skipped.

--home moves the user layer along with the rest of the CodeWork home. --user-config-dir <dir> replaces just the user file with <dir>/settings.jsonc.

Example

.codework/settings.jsonc
{
	// Default model for every session in this project
	"model": {
		"provider": "openrouter",
		"id": "deepseek/deepseek-v4.1-flash",
		"thinkingLevel": "medium",
	},

	// Turn on the opt-in search tools and add a team plugin
	"plugins": [
		{ "plugin": "codework.tool.grep", "enabled": true },
		{ "plugin": "codework.tool.find", "enabled": true },
		"@acme/codework-tool-proc@1.2.0",
	],

	// Retry rate limits and outages a little longer than the default
	"retry": { "maxRetries": 5 },
}

Top-Level Keys

KeyTypeDescription
modelobjectThe default model and how to call it. See model.
modelsarrayExtra catalog entries. See Custom Models.
pluginsarrayPlugins to load and configure. See Configure plugins.
retryobjectRetries for failed model requests. See retry.

model

KeyDefaultDescription
provideropenaiProvider ID from the catalog
idgpt-5.6-lunaModel ID
thinkingLevelhighoff, minimal, low, medium, high, xhigh, or max
toolExecutionsequentialparallel runs the tool calls from one model response at the same time
optionsRequest options, below

Without any settings, CodeWork uses OpenAI’s gpt-5.6-luna with high thinking. Each model supports a subset of the thinking levels; see Thinking Levels.

--provider, --model, and --thinking on codework run, and the pickers in your editor, override these for one session.

model.options

KeyDefaultDescription
temperatureSampling temperature, for models that accept it
maxTokensCap on output tokens per response
timeoutMs3600000Longest a single request may take
idleTimeoutMs300000Abort a response stream that sends nothing for this long, and retry it
maxRetries0Retries inside the provider’s SDK. Leave at 0 and use retry instead.
cacheRetentionPrompt caching: none, short, or long, on providers that support it
headersExtra HTTP headers sent with each request
baseURLSend requests to a different endpoint, such as a proxy
apiKeyThe environment variable holding the key, written "${NAME}". Never a literal key.

retry

When a request fails with a rate limit, an overload, a server error, a timeout, or a dropped connection, CodeWork waits and tries the turn again. Quota and billing errors are never retried.

KeyDefaultDescription
maxRetries3Attempts after the first. 0 turns retries off.
baseDelayMs2000Wait before the first retry; doubles after each one
maxDelayMs60000Longest wait. A server asking for longer fails the turn.