Configuration
Customize Jeff to fit your workflow.
Config File
Jeff uses a YAML configuration file at:
~/.jeff/config.yaml
You can also use a .env file in your current directory for project-specific settings.
Available Settings
# ~/.jeff/config.yamlapi_key:sk-ant-...model:claude-sonnet-4-5-20250929permission_mode:ask# ask, allow, deny, plantheme:dracula# dracula, gruvbox, norddefault_tools:- Bash- Read- Write- Edit- Grephooks:sessionstart:- command: "echo 'Jeff starting'"timeout: 5
api_key - Your Anthropic API key
model - Default Claude model to use
permission_mode - How Jeff handles tool permissions
theme - TUI color theme
default_tools - Tools enabled by default
hooks - Event hooks for automation
Environment Variables
Override config settings with environment variables:
ANTHROPIC_API_KEY Anthropic API key (also: JEFF_API_KEY)
JEFF_MODEL Override default model
JEFF_PERMISSION_MODE Permission handling mode
JEFF_CONFIG_PATH Custom config file path
JEFF_GMAIL_CLIENT_ID Google OAuth client ID
JEFF_GMAIL_CLIENT_SECRET Google OAuth client secret
TZ Timezone for calendar operations
Customization
Create a ~/.jeff/JEFF.md file to customize Jeff's personality and rules. This is loaded into the system prompt.
# ~/.jeff/JEFF.md# My Preferences- Always sign off emails with "Best, Harper"- My timezone is Pacific- Don't schedule meetings before 10am
Data Directory
Jeff stores all data in ~/.jeff/:
config.yaml - Main configuration
jeff.db - Conversation history (SQLite)
tokens/ - OAuth tokens
templates/ - Session templates
JEFF.md - Personality customization