Custom Profiles
Create your own profiles for specialized workflows.
Profile Structure
Profiles are Markdown files with YAML frontmatter located in ~/.ist/profiles/:
---
name: my-profile
description: My custom workflow
extends: _base
permissionMode: acceptEdits
---
# My Profile
## System Prompt
You follow these guidelines...
## Rules
1. Rule one
2. Rule two
Creating a Profile
1. Create the Markdown File
cat > ~/.ist/profiles/my-profile.md << 'EOF'
---
name: my-profile
description: Focused on testing
extends: _base
permissionMode: acceptEdits
---
# Testing Specialist
## System Prompt
You are a testing specialist. Always:
1. Write tests first (TDD)
2. Aim for high coverage
3. Include edge cases
## Test Framework
Use vitest for all tests.
EOF
2. Use the Profile
ilogsession start my-session -p my-profile
# or
isesh start my-session -p my-profile -w .
Profile Fields (YAML Frontmatter)
| Field | Required | Description |
|---|---|---|
name | Yes | Profile identifier |
description | No | Human-readable description |
extends | No | Parent profile to inherit from (e.g., _base) |
permissionMode | No | How to handle permissions (acceptEdits, default) |
allowedTools | No | List of allowed tool patterns |
hooks | No | Pre/post hooks to run |
System Prompt Guidelines
The Markdown content after the frontmatter becomes the system prompt.
Be Specific
---
name: backend-dev
extends: _base
---
# Backend Developer
You are a backend developer. Rules:
1. Use TypeScript
2. Follow REST conventions
3. Include error handling
4. Write JSDoc comments
Include Examples
---
name: commit-guide
extends: _base
---
# Commit Message Guide
Commit messages should follow this format:
type(scope): description
Examples:
- `feat(auth): add password reset`
- `fix(api): handle null response`
- `docs(readme): update installation`
Extending Profiles
Use extends to inherit from a base profile:
---
name: strict-tester
extends: tda-worker
description: Worker with strict testing requirements
---
# Strict Tester
In addition to standard worker behavior:
- Run tests before every commit
- Require 80% coverage minimum
Tool Restrictions
Control which tools the AI can use:
---
name: safe-reviewer
extends: _base
permissionMode: default
allowedTools:
- Read
- Glob
- Grep
# No Edit, Write, or Bash - read-only profile
---
Example Profiles
Code Reviewer (Read-Only)
---
name: code-reviewer
description: Reviews code without making changes
extends: _base
allowedTools:
- Read
- Glob
- Grep
---
# Code Reviewer
You are a code reviewer. For each file:
1. Check for bugs and logic errors
2. Suggest performance improvements
3. Ensure consistent style
4. Verify error handling
Format your review as:
- **ISSUE**: [description]
- **SUGGESTION**: [description]
- **APPROVED**: [description]
Documentation Writer
---
name: doc-writer
description: Writes and updates documentation
extends: _base
---
# Documentation Writer
You specialize in documentation. Guidelines:
1. Use clear, simple language
2. Include code examples
3. Explain the 'why' not just 'how'
4. Keep it up to date with code changes
Refactoring Specialist
---
name: refactorer
description: Improves code structure without changing behavior
extends: _base
---
# Refactoring Specialist
You are a refactoring specialist. Rules:
1. Never change external behavior
2. Make small, incremental changes
3. Run tests after each change
4. Improve readability and maintainability
Verify Your Profile
After creating a profile, verify it's recognized:
# List all profiles
isesh profile list
# Show profile content
isesh profile show my-profile