Project Configuration
Configure Synoppy on a per-project basis with synoppy.json.
Creating Project Config
Initialize a project configuration file in your project root:
bash
synoppy initOr use the slash command during a session:
bash
/initExample Configuration
synoppy.json
{
"allowedTools": ["read", "write", "bash"],
"blockedTools": ["delete"],
"customInstructions": "This is a React project using TypeScript. Follow the existing code patterns.",
"ignorePatterns": ["node_modules", "dist", ".git", "*.log"],
"model": "claude-sonnet-4-6",
"thinkingEnabled": true
}Configuration Options
| Option | Type | Description |
|---|---|---|
allowedTools | string[] | Tools Synoppy can use without asking |
blockedTools | string[] | Tools Synoppy should never use |
customInstructions | string | Project-specific instructions for the AI |
ignorePatterns | string[] | Files/folders to ignore (glob patterns) |
model | string | Default model for this project |
thinkingEnabled | boolean | Enable extended thinking by default |
Custom Instructions
Add project-specific context and guidelines that Synoppy will follow:
json
{
"customInstructions": "This is a Next.js 14 app with App Router. Use Server Components by default. Follow these conventions:\n- Use TypeScript strict mode\n- Prefer 'const' over 'let'\n- Use Tailwind CSS for styling\n- Place components in src/components"
}Custom instructions are included with every request to help Synoppy understand your project's conventions.
Ignore Patterns
Prevent Synoppy from reading or modifying certain files:
json
{
"ignorePatterns": [
"node_modules",
"dist",
"build",
".git",
"*.log",
"*.env*",
"secrets/**"
]
}Tip: Use ignore patterns to protect sensitive files and reduce noise in large projects.
Configuration Hierarchy
Settings are applied in this order (later overrides earlier):
- Default settings
- Global config (
~/.synoppy/config.json) - Project config (
synoppy.json) - Command line flags
- Session commands (
/model, etc.)