Profiles¶
Profiles let you keep separate data sets. A freelancer might have one profile per client engagement, or split work and personal tracking.
How Profiles Work¶
Each profile is a directory under ~/.kaisho/profiles/:
~/.kaisho/
.active_profile # Name of the current profile
profiles/
work/
settings.yaml
jobs.yaml
org/
todos.org
clocks.org
...
personal/
settings.yaml
org/
...
One profile is active at a time. All API calls, CLI commands, and UI actions operate on the active profile.
Managing Profiles¶
Profile Contents¶
A fresh profile is created from a template that includes:
| File | Purpose |
|---|---|
settings.yaml | Task states, tags, AI config, paths |
jobs.yaml | Default cron jobs (daily briefing, weekly summary) |
user.yaml | Name, email, avatar |
SOUL.md | AI advisor personality instructions |
USER.md | Context about you for the AI advisor |
SKILLS/ | Reusable prompt templates |
Profile-Specific Settings¶
Each profile has its own:
- Storage backend (org-mode, Markdown, JSON, or SQL)
- Task states and columns (TODO, IN-PROGRESS, DONE, etc.)
- Tags with colors
- AI provider configuration
- Cron job schedule
- Knowledge base sources
This means you can use org-mode for one project and Markdown for another, or configure different AI providers per profile.
The PROFILE Environment Variable¶
Set PROFILE to override the active profile:
This is useful for scripts and automation that should always target a specific profile regardless of what's active in the UI.
Browser State Isolation¶
Since 0.9.0
The web UI scopes all browser state per profile. Advisor chat history, unread badges, clock filters, board view toggles, and knowledge base bookmarks are stored under a profile-specific key in localStorage. Switching profiles gives a clean UI state without leaking data from a previous session.