Skip to content

IainMcl/jamie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jamie

A personal AI coding agent that automates day-to-day development work. Jamie integrates with your source control, monitoring, work tracking, and notification tools through a pluggable adapter system, then uses Claude to automate PR reviews, error triage, health reports, and more.

Jamie is also a set of Claude Code skills — invoke /jamie-review, /jamie-triage, /jamie-work etc. directly from your editor.

What Jamie does

Command What it does
jamie review <pr> AI code review — finds bugs, security issues, performance problems. Posts comments directly to the PR.
jamie comments <pr> Processes new PR review comments — auto-fixes simple changes, replies to questions, flags complex ones for you.
jamie summary <pr> Generates a concise summary of a merged PR for the team.
jamie work Queries your work trackers for assigned tickets, generates a prioritized plan for the day.
jamie triage Pulls recent errors from monitoring tools, triages them, correlates with recent deploys.
jamie health Generates a narrative health report from monitoring metrics and alerts.
jamie chat Interactive chat with full context from all your tools.
jamie serve Starts the webhook server for automatic PR review and comment handling.

Quick start

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip
  • API keys for the tools you want to integrate (GitHub, Sentry, Datadog, Jira, etc.)

Install

git clone https://github.com/IainMcl/jamie.git
cd jamie
uv venv && uv pip install -e ".[dev]"
source .venv/bin/activate

Configure

The easiest way to set up Jamie is the interactive wizard:

jamie init

This walks you through:

  1. Selecting which adapters to enable (GitHub, Sentry, Datadog, Jira, Slack, etc.)
  2. Entering API keys and configuration (stored in ~/.jamie/.env)
  3. Setting schedules for automated tasks
  4. Linking Claude Code skills

The wizard writes ~/.jamie/config.yaml (committed, no secrets) and ~/.jamie/.env (gitignored, secrets only).

Manual configuration

If you prefer, copy the example config and edit it:

mkdir -p ~/.jamie
cp config.example.yaml ~/.jamie/config.yaml
cp .env.example ~/.jamie/.env
# Edit both files with your values

See docs/configuration.md for the full config reference.

Verify

jamie status

This shows your configured adapters, AI model, and schedule settings.

Run

# Review a PR
jamie review https://github.com/org/repo/pull/42

# Or use shorthand
jamie review org/repo#42

# Start the webhook server for automatic reviews
jamie serve

Architecture

┌─────────────────────────────────────────────────────┐
│  Claude Code Skills                                 │
│  /jamie-review  /jamie-triage  /jamie-health  ...   │
├─────────────────────────────────────────────────────┤
│  Jamie Core                                         │
│  FastAPI server + Typer CLI + APScheduler           │
├─────────────────────────────────────────────────────┤
│  Adapter Registry                                   │
│  ┌────────────┬────────────┬──────────┬───────────┐ │
│  │ Source     │ Monitoring │ Work     │ Notifi-   │ │
│  │ Control   │            │ Tracking │ cation    │ │
│  ├────────────┼────────────┼──────────┼───────────┤ │
│  │ GitHub    │ Sentry     │ Jira     │ Terminal  │ │
│  │           │ Datadog    │          │ macOS     │ │
│  │           │            │          │ Slack     │ │
│  │           │            │          │ GitHub    │ │
│  └────────────┴────────────┴──────────┴───────────┘ │
└─────────────────────────────────────────────────────┘

Jamie doesn't know about "Sentry" or "Jira" directly — it knows about "monitoring tools" and "work trackers". Each category has an abstract interface; concrete adapters implement it. Adding a new integration (e.g. Grafana, Linear, GitLab) requires creating one file and zero changes to core code.

See docs/adapters.md for how to write a new adapter.

CLI reference

All commands accept --config / -c <path> to override the config file location.

jamie serve [--host HOST] [--port PORT] [--reload]
jamie status
jamie review <pr_ref> [--no-post]
jamie comments <pr_ref> [--no-push]
jamie summary <pr_ref>
jamie work
jamie triage [--since MINUTES]
jamie health
jamie chat
jamie init [PROJECT_PATH]

<pr_ref> accepts: https://github.com/owner/repo/pull/123, owner/repo#123, or owner/repo 123.

Claude Code skills

When Jamie's skills are linked (done automatically by jamie init), you can invoke them in Claude Code:

Skill Description
/jamie-review AI code review for PRs
/jamie-comments Auto-handle PR review comments
/jamie-triage Triage production errors
/jamie-health Daily health report
/jamie-deploy Monitor a deployment
/jamie-summary Summarize merged PRs
/jamie-work Discover assigned work
/jamie-chat Interactive assistant
/jamie-serve Start/stop webhook server

Development

# Install dev dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check jamie/ tests/

# Run server in dev mode
jamie serve --reload

License

MIT

About

AI coding agent that integrates with source control, monitoring, work tracking, and notifications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages