100xprompt.json. It holds everything you can tune - the model that drives your sessions, the agents you call, what needs approval, the tools and services you connect, how the interface looks, and what runs automatically at each step.
Set it once globally for sensible defaults everywhere. Then drop a project-level file into any repository to layer team-specific settings on top.
Where files live
Global defaults, project overrides, and how they merge.
Top-level settings
Every key you can set, grouped by what it controls.
Example config
A realistic project file to copy and adapt.
Environment variables
Override settings from the shell for CI and one-offs.
Global and project settings
A100xprompt.json can live in two places:
- Global - your personal defaults, applied to every project you work in.
- Project - checked into a repository, applied only when you work in that repo.
Project settings take precedence over global settings on a per-key basis. Lists like
instructions and plugin are combined across both files rather than replaced, so a project can add to your global setup without wiping it out.Where the files live
- Global
- Project
Your global config lives in the 100xprompt config directory in your home folder. Both file names are recognized:Use the global file for preferences you want everywhere: your default model, theme, keybindings, and any MCP servers or agents you always want available.
Set the keys you need
One file, a handful of areas. Everything you tune falls into a few natural groups - the model that drives sessions, the agents you call, what needs approval, the tools and services you connect, and how the interface looks and behaves.100xprompt.json. Every key is optional - start with just a model and add more as you need it.
| Key | Type | What it controls |
|---|---|---|
$schema | string | Points editors at the config schema for autocomplete and validation. Added for you automatically. |
model | string | The default model that drives your sessions, as provider/model (e.g. 100xprompt/pro). |
small_model | string | A smaller, faster model used for lightweight background steps like naming a session. |
fallback_model | string | Model to switch to when the primary is overloaded or rate-limited, as provider/model. |
plan_model | string | A stronger model to use while a session is in plan mode, as provider/model or a short alias. |
default_agent | string | Which primary agent is active when you start a session. |
theme | string | The color theme for the interface. |
username | string | A custom name to show for you in conversations instead of your system username. |
agent | object | Define and customize agents - their model, prompt, tools, and permissions. See Agents. |
permission | object | Which actions run freely, which ask first, and which are blocked. See Permissions. |
mcp | object | Model Context Protocol servers that add external tools and data sources. |
provider | object | Custom provider connections and per-model overrides. See Models. |
keybinds | object | Custom keyboard shortcuts for the terminal interface. |
tui | object | Terminal interface behavior such as scroll speed and diff style. |
vim | boolean | Enable Vim keybindings in the prompt input. |
instructions | string[] | Extra instruction files or glob patterns to always include. See Rules & Instructions. |
hooks | object | Shell commands that run automatically at lifecycle events. |
memory | object | Long-term memory: toggle extraction, consolidation, and recall, or set the model they use. |
compaction | object | Controls how conversations are automatically condensed as they grow. |
env | object | Environment variables injected into the tools 100xprompt runs, such as shell commands and hooks. |
includeCoAuthoredBy | boolean | Whether to add a Co-Authored-By trailer to git commits 100xprompt makes. Defaults to on. |
share | enum | Session sharing policy: manual, auto, or disabled. |
autoupdate | boolean | "notify" | Keep 100xprompt up to date automatically, or just be notified. |
server | object | Host and port for the serve and web interfaces. |
command | object | Custom slash commands. |
plugin | string[] | Plugins to load. |
formatter | object | Code formatters to run on edited files. |
lsp | object | Language server configuration for richer code awareness. |
output_style | string | The response style: explanatory, learning, concise, or a custom style. |
disabled_providers | string[] | Providers to turn off. |
enabled_providers | string[] | When set, only these providers are available. |
Example configuration
Suppose you want a project config that sets a default model, defines a review agent, tightens permissions, connects an MCP server, and runs a formatter after edits. Here it is end to end:You can reference environment variables and files inside string values. Write
{env:VAR_NAME} to substitute an environment variable and {file:./path} to inline the contents of a file. This keeps secrets like API tokens out of the config itself.Configure each area
Default model and small model
Default model and small model
Set You can switch models any time from within a session; the config value is just the starting point. See Models for the full picture.
model to the model that should drive your sessions, written as provider/model. Set small_model for the lightweight background work - session titles, short summaries - so those steps stay fast and cheap while your main model handles the real work.Agents
Agents
Under Full detail lives on the Agents page.
agent, define custom agents or override the built-in ones. Each agent can have its own model, prompt, description, mode (primary or subagent), tool permission set, and more.Permissions
Permissions
The Bash patterns are evaluated top to bottom and the last match wins, so the broad
permission key decides what 100xprompt can do on its own and what needs your approval. Each action can be allow, ask, or deny, and command-based actions like bash accept fine-grained patterns."*" goes first and "git push" overrides it. See Permissions for the complete model and pattern syntax.MCP servers
MCP servers
The Set
mcp key connects Model Context Protocol servers, which extend 100xprompt with external tools and data. Servers can be local (a command 100xprompt runs) or remote (a URL it connects to).enabled: false to keep a server defined but turned off. Remote servers support OAuth automatically, and you can add a timeout to either type.Keybindings
Keybindings
The Set a binding to
keybinds key rebinds any shortcut in the terminal interface. Most bindings are built around a leader key (ctrl+x by default), and you can assign multiple triggers to one action by separating them with commas."none" to disable it entirely.UI & appearance
UI & appearance
Control how the interface looks and feels:
theme- the color theme.vim- enable Vim keybindings in the prompt input.tui- terminal behavior includingscroll_speed,scroll_acceleration, anddiff_style(autoorstacked).output_style- the response style (explanatory,learning,concise, or a custom one).recap- show an end-of-turn summary of what changed.
Memory & compaction
Memory & compaction
As a conversation grows, 100xprompt automatically condenses older context so long sessions stay coherent without running out of room. The Learn more on Memory & Context.
compaction key lets you tune - or turn off - this behavior.auto- condenses the full conversation once it grows past a threshold.micro- trims oversized individual tool results to keep recent context lean.
enabled to false to disable that layer.Separately, the memory key controls 100xprompt’s long-term memory - the durable facts it recalls across sessions. Turn the whole system off with "memory": { "enabled": false }, toggle individual stages (extraction, consolidation, recall), or point them at a specific model.Workflow hooks
Workflow hooks
The Recognized events include
hooks key runs your own shell commands at lifecycle events, so you can integrate 100xprompt with linters, notifiers, or custom checks. Each event receives details on standard input.PreToolUse, PostToolUse, UserPromptSubmit, PermissionRequest, SessionStart, and Stop. Use matcher on the tool-use events to target specific tools.Override from the environment
Suppose you’re in CI and need to change a setting without touching the committed file. A few settings can be driven by environment variables instead.HUNDREDXPROMPT_CONFIG layers an extra file on top of your global config, while HUNDREDXPROMPT_CONFIG_CONTENT is inline JSON applied last of all - so it has the final say:
| Variable | Effect |
|---|---|
HUNDREDXPROMPT_CONFIG | Path to an additional config file to layer on top of your global config. |
HUNDREDXPROMPT_CONFIG_CONTENT | Inline config JSON applied at the highest precedence. |
HUNDREDXPROMPT_PERMISSION | Permission overrides as inline JSON. |
HUNDREDXPROMPT_DISABLE_AUTOUPDATE | Turn off automatic updates. |
HUNDREDXPROMPT_DISABLE_AUTOCOMPACT | Disable automatic conversation compaction. |
Related
Permissions
Decide what runs freely, what asks first, and what is blocked.
Rules & Instructions
Give 100xprompt standing instructions with
AGENTS.md and the instructions key.Models
Pick your default model and connect your own provider account.