Skip to main content

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)

FieldRequiredDescription
nameYesProfile identifier
descriptionNoHuman-readable description
extendsNoParent profile to inherit from (e.g., _base)
permissionModeNoHow to handle permissions (acceptEdits, default)
allowedToolsNoList of allowed tool patterns
hooksNoPre/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