Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>ModCodePatternNew to Visual Studio Code?Β Get it now.
ModCodePattern

ModCodePattern

ModCodePattern

|
35 installs
| (1) | Free
🎯 Smart VS Code extension to maintain codebase consistency with intelligent adaptive patterns. Automatic todo list, file monitoring, dynamic variables. Perfect for React/Vue/Angular and works with any language (Python, Java, Rust, Go, C#, PHP...). Startup <200ms. πŸ“š Ready-to-use patterns: https://g
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ModCodePattern

Intelligent code consistency β€” zero oversight, any language, any framework.

Create a file? ModCodePattern reminds you to export it, test it, and document it. Switch a Git branch? It triggers your deployment checklist. Every morning at 9 AM? Your standup link opens automatically.

One JSON file. Infinite automation.

ModCodePattern in action


Why ModCodePattern?

Without ModCodePattern With ModCodePattern
Forget to export new components Automatic reminders the moment you create a file
Missing tests for new features Todo tasks generated instantly
Outdated documentation Smart notifications keep everything in sync
Manual code reviews for consistency Patterns enforce your conventions silently
Onboarding is chaotic New developers follow guided, pre-defined workflows

Works with every language β€” JavaScript, TypeScript, Python, Java, Rust, Go, C#, PHP, Ruby, and more.


Get Started in 30 Seconds

1. Install ModCodePattern from the VS Code Marketplace

2. Create a .mod-patterns.json at your project root:

{
  "patterns": [
    {
      "onCreateFile": "src/components/**/*.tsx",
      "notify": ["src/components/index.ts"],
      "description": "📦 Export the new component"
    }
  ]
}

3. Create a new component file β€” a Todo task appears instantly!

Press Ctrl+Space inside .mod-patterns.json to get full auto-completion and validation powered by the built-in JSON Schema.

JSON Auto-completion


Features at a Glance

Feature Free Premium
File monitoring (onChange, onCreate, onDelete...) 5 patterns Unlimited
Scheduled reminders (onSchedule) 3 reminders Unlimited
Manual commands (onManual) 3 commands Unlimited
Adaptive variables (auto-detect project structure) Yes Yes
Custom variables Yes Yes
Runtime variables (TRIGGER_NAME, TRIGGER_PATH...) Yes Yes
Interactive Todo list Yes Yes
JSON auto-completion & validation Yes Yes
Multilingual support (English & French) Yes Yes
4 notification types (file, folder, command, URL) Yes Yes
Inline hints in code Yes Yes
Chained patterns (implicit workflow) Yes Yes
Linked tasks with triggerNext (explicit workflow) Yes Yes
Pattern identification (id) Yes Yes
Content filtering Yes Yes
External links (url) Yes Yes
onStart onboarding trigger Yes Yes
Individual pattern toggle (enabled) Yes Yes
Health check & workspace statistics Yes Yes
Silent mode Yes Yes
Variable transformations (17 pipe filters) β€” Yes
Git events (branch, commit, pull, push) β€” Yes
Git dynamic variables (13+ variables) β€” Yes
Modular config (import pattern files) β€” Yes
Priority support β€” Yes

File System Monitoring

6 triggers to watch every move in your codebase.

Trigger Fires when... Example
onChange A file is edited Update tests when a service changes
onCreateFile A file is created Export a new component
onCreateFolder A folder is created Scaffold a new module
onDeleteFile A file is deleted Clean up orphaned imports
onDeleteFolder A folder is deleted Remove related config
onStart Extension starts / manually triggered Onboarding checklist

Four notification types

File β€” Remind to update a specific file:

{
  "onChange": "src/api/**/*.ts",
  "notify": [
    { "file": "src/types/api.d.ts", "description": "📝 Update API types" }
  ]
}

Folder β€” Remind to work in a directory:

{
  "onCreateFile": "src/services/**/*.ts",
  "notify": [
    { "folder": "tests/services/", "description": "🧪 Add tests here" }
  ]
}

Commands β€” Remind to run scripts:

{
  "onChange": "src/**/*.ts",
  "notify": [
    { "commands": ["npm run lint", "npm test"], "description": "🚀 Run checks" }
  ]
}

URL (External Links) β€” Open a link in the browser:

{
  "onCreateFile": "src/api/**/*.ts",
  "notify": [
    { "url": "https://wiki.company.com/api-guidelines", "description": "📖 Read API guidelines" }
  ]
}

Use url notifications to link to wikis, dashboards, design specs, meeting rooms, or any external resource your team needs.

Smart notifications


Pattern Identification

Give every pattern a unique id to reference it, debug it, and link it to others.

The id property is a unique identifier for your pattern. It is required when using Linked Tasks (triggerNext) and recommended for all patterns for clarity:

{
  "id": "component-export",
  "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
  "notify": [
    { "file": "{{COMPONENTS_DIR}}/index.ts", "description": "📦 Export {{TRIGGER_NAME}}" }
  ],
  "description": "New component β†’ export it"
}

Pattern IDs appear in the Health Check output, workspace statistics, and the Todo list β€” making it easy to trace which rule generated which task.


Content Filtering

Only trigger when the file contains specific content.

Instead of reacting to every save on a file, use contentFilter to fire only when the file includes a specific string or pattern:

{
  "onChange": "src/**/*.ts",
  "contentFilter": "export default class",
  "notify": [
    { "file": "src/index.ts", "description": "📦 Update barrel export" }
  ],
  "description": "🎯 Only triggers for files with a default class export"
}
{
  "onChange": "src/api/**/*.ts",
  "contentFilter": "@deprecated",
  "notify": [
    { "file": "docs/deprecations.md", "description": "📝 Document deprecated API" }
  ],
  "description": "⚠️ Deprecated API detected"
}

This prevents noise β€” you only get reminders when it actually matters.


Inline Hints

See pattern reminders directly inside your source code.

When a pattern triggers, ModCodePattern can display inline hints as decorations right in the affected files β€” no need to open the Todo list to know what to do:

// Your code
export const Button = () => {
  return <button>Click me</button>;
};

// 📝 🔄 API modified β€” synchronize types     ← inline hint

Configure per pattern

Use showInlineHint to control which patterns show hints:

{
  "patterns": [
    {
      "onChange": "src/api/**/*.ts",
      "notify": [
        { "file": "src/types/api.ts", "description": "📝 Update API types" }
      ],
      "showInlineHint": true,
      "description": "🔧 API modified"
    },
    {
      "onChange": ".env",
      "notify": [
        { "file": "docker-compose.yml", "description": "🐳 Update Docker config" }
      ],
      "showInlineHint": false,
      "description": "βš™οΈ Env changed (silent)"
    }
  ]
}
  • showInlineHint: true β€” (default) hints appear in the triggering file and target files
  • showInlineHint: false β€” pattern works normally but no visual decoration in the editor

Best for: synchronization reminders, guidance for new developers, contextual notes. Disable for: high-frequency patterns that would clutter the editor.


onStart β€” Onboarding & Educational Trigger

Show a checklist the moment a developer opens the project.

The onStart trigger fires when the extension activates (project open) or manually via Ctrl+Shift+P β†’ "ModCodePattern: Start". Perfect for onboarding and educational workflows:

{
  "onStart": true,
  "notify": [
    { "file": "README.md", "description": "📚 Read the project guide" },
    { "file": "docs/ARCHITECTURE.md", "description": "🏗️ Understand the architecture" },
    { "file": "docs/CODING_STANDARDS.md", "description": "📏 Review coding standards" },
    { "url": "https://company.slack.com/channels/dev-team", "description": "💬 Join the team channel" },
    { "commands": ["npm install", "npm run dev"], "description": "🚀 Setup & run" }
  ],
  "description": "👋 Welcome! Follow these steps to get started"
}

New team members open the project β†’ the Todo list instantly shows them exactly what to do, in order. No more 20-page onboarding docs.


Chained Patterns vs Linked Tasks

ModCodePattern offers two ways to create multi-step workflows. Understanding the difference is key:

Chained Patterns β€” Implicit workflow

Chained patterns work implicitly: the output of Pattern A naturally matches the trigger of Pattern B. No special property needed β€” just smart glob alignment:

{
  "patterns": [
    {
      "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
      "notify": [
        { "file": "src/stories/{{TRIGGER_NAME}}.stories.tsx", "description": "📖 Create Storybook story" }
      ],
      "description": "Step 1 β€” Component created"
    },
    {
      "onCreateFile": "src/stories/**/*.stories.tsx",
      "notify": [
        { "folder": "{{TESTS_DIR}}/stories/", "description": "🧪 Create story tests" }
      ],
      "description": "Step 2 β€” Story created"
    },
    {
      "onCreateFile": "{{TESTS_DIR}}/stories/**/*.test.tsx",
      "notify": [
        { "commands": ["npm run test:stories"], "description": "🚀 Run story tests" }
      ],
      "description": "Step 3 β€” Tests created"
    }
  ]
}

How it flows: You create Button.tsx β†’ notified to create Button.stories.tsx β†’ you create it β†’ notified to create tests β†’ you create them β†’ notified to run tests.

Each pattern triggers independently because the file you create matches the next pattern's glob. It's natural and requires no linking β€” but you must create each file yourself to advance the chain.

Linked Tasks (triggerNext) β€” Explicit workflow

Linked tasks use the triggerNext property to explicitly connect patterns by their id. When all tasks of Pattern A are completed (checked off in the Todo list), Pattern B fires automatically:

{
  "patterns": [
    {
      "id": "step-1-setup",
      "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
      "notify": [
        { "file": "{{COMPONENTS_DIR}}/index.ts", "description": "📦 Export the component" },
        { "file": "src/types/{{TRIGGER_NAME}}.types.ts", "description": "📘 Create type definitions" }
      ],
      "triggerNext": "step-2-testing",
      "description": "Step 1 β€” Setup component"
    },
    {
      "id": "step-2-testing",
      "onStart": true,
      "notify": [
        { "file": "{{TESTS_DIR}}/{{TRIGGER_NAME}}.test.tsx", "description": "🧪 Write unit tests" },
        { "commands": ["npm test"], "description": "🚀 Run test suite" }
      ],
      "triggerNext": "step-3-docs",
      "description": "Step 2 β€” Test the component"
    },
    {
      "id": "step-3-docs",
      "onStart": true,
      "notify": [
        { "file": "docs/components/{{TRIGGER_NAME}}.md", "description": "📝 Write documentation" },
        { "url": "https://storybook.myapp.com", "description": "📖 Verify in Storybook" }
      ],
      "description": "Step 3 β€” Document the component"
    }
  ]
}

How it flows: You create a component β†’ Step 1 tasks appear β†’ you complete them all βœ… β†’ Step 2 tasks appear automatically β†’ you complete them βœ… β†’ Step 3 tasks appear automatically.

When to use which?

Chained Patterns Linked Tasks (triggerNext)
Mechanism Implicit (glob matching) Explicit (by pattern id)
Advances when... You create/modify a file that matches the next trigger You check off all tasks in the Todo list
Requires id No Yes
Best for File-creation pipelines Multi-step checklists, onboarding, reviews
Complexity Simple, natural More control, more guided

You can combine both approaches in the same project for maximum flexibility.


Adaptive Variables β€” Auto-detects Your Architecture

No hard-coded paths. Your patterns work across any project structure.

{
  "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
  "notify": ["{{COMPONENTS_DIR}}/index.ts"],
  "description": "📦 Export {{TRIGGER_NAME}} component"
}

Whether your components live in src/components/, app/ui/, or lib/widgets/ β€” the pattern just works.

Architecture variables (auto-detected)

Variable Resolves to... Examples
{{SRC_DIR}} Main source directory src, lib, app
{{COMPONENTS_DIR}} Components directory src/components, app/ui
{{HOOKS_DIR}} Hooks / composables src/hooks, src/composables
{{API_DIR}} API / services src/api, src/services
{{TESTS_DIR}} Tests directory tests, __tests__, spec
{{DOCS_DIR}} Documentation docs, documentation
{{CONFIG_DIR}} Config directory config, configs
{{CONFIG_FILE}} Config file config/index.ts
{{TYPES_FILE}} Types file src/types/index.ts

Variable status: Run Ctrl+Shift+P β†’ "ModCodePattern: Show Adaptive Variables" to see which variables are βœ… Found (directory exists in your project) vs ❌ Not Assigned (suggested but not yet created). Only found variables resolve in your patterns β€” create the missing directories to activate them automatically.

Runtime variables

Variable Description Example
{{TRIGGER_PATH}} Full path of the triggering file src/components/Button.tsx
{{TRIGGER_FILE}} File name with extension Button.tsx
{{TRIGGER_NAME}} File name without extension Button
{{TRIGGER_DIR}} Directory of the triggering file src/components
{{TRIGGER_TYPE}} Event type that fired onCreateFile

Tip: Use {{TRIGGER_NAME}} (not {{TRIGGER_FILE}}) when building file paths to avoid double extensions like Button.tsx.test.tsx.

Custom variables

Define your own reusable values:

{
  "variables": {
    "COMPANY": "Acme",
    "API_VERSION": "v2",
    "DESIGN_SYSTEM": "lib/design"
  },
  "patterns": [
    {
      "onChange": "{{DESIGN_SYSTEM}}/**/*.tsx",
      "notify": [
        { "file": "docs/{{COMPANY}}/api-{{API_VERSION}}.md", "description": "📝 Update docs" }
      ]
    }
  ]
}

Custom variables can override auto-detected ones if your project uses a non-standard structure:

{
  "variables": {
    "COMPONENTS_DIR": "lib/ui",
    "TESTS_DIR": "spec"
  }
}

Variable Transformations 🔒 Premium

Transform any variable on the fly with pipe filters β€” 17 built-in transformations.

Apply transformations directly inside {{ }} using the pipe | syntax:

{
  "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
  "notify": [
    {
      "file": "tests/{{TRIGGER_NAME | kebabCase}}.test.tsx",
      "description": "🧪 Test for {{TRIGGER_NAME | pascalCase}}"
    }
  ]
}

If you create MyButton.tsx:

  • {{TRIGGER_NAME | kebabCase}} β†’ my-button
  • {{TRIGGER_NAME | pascalCase}} β†’ MyButton

All 17 transformations

Transform Description Example
uppercase ALL CAPS MyButton β†’ MYBUTTON
lowercase all lowercase MyButton β†’ mybutton
capitalize First letter capitalized hello β†’ Hello
camelCase camelCase my-button β†’ myButton
pascalCase PascalCase my-button β†’ MyButton
kebabCase kebab-case MyButton β†’ my-button
snakeCase snake_case MyButton β†’ my_button
constantCase CONSTANT_CASE MyButton β†’ MY_BUTTON
slugify URL-safe slug Mon Composant β†’ mon-composant
reverse Reverse string Button β†’ nottuB
basename File name from path /src/components/Button.tsx β†’ Button.tsx
dirname Parent directory /src/components/Button.tsx β†’ /src/components
ext File extension Button.tsx β†’ .tsx
length Character count Button β†’ 6
first:n First n characters {{NAME \| first:3}} β†’ But
last:n Last n characters {{NAME \| last:3}} β†’ ton
replace:old:new Replace text {{NAME \| replace:-:_}} β†’ my_button

Chain multiple transformations

{
  "file": "logs/{{TRIGGER_NAME | lowercase | replace:_:-}}.log",
  "description": "📊 Log for {{TRIGGER_NAME | uppercase | first:10}}"
}

Scheduled Reminders

Never miss a standup, a deadline, or an end-of-day commit again.

{
  "onSchedule": {
    "time": "09:00",
    "days": ["monday", "tuesday", "wednesday", "thursday", "friday"]
  },
  "notify": [
    {
      "url": "https://meet.google.com/your-standup",
      "description": "🕘 Daily standup β€” {{DAY_NAME_FR}} {{DATE_FORMATTED}}"
    }
  ]
}
{
  "onSchedule": {
    "time": "17:00",
    "days": "daily"
  },
  "notify": [
    {
      "commands": ["git status"],
      "description": "🕐 End-of-day commit check β€” {{WORKSPACE_NAME}}"
    }
  ]
}

Schedule options

Property Type Description Example
time string Time in HH:MM (required) "14:30"
days string/array Repeat days "daily", ["monday", "friday"]
date string One-time date (YYYY-MM-DD) "2025-12-31"
timezone string Timezone "Europe/Paris"
repeat boolean Repeat (default: true) false

Temporal variables

Variable Description Example
{{SCHEDULED_TIME}} Planned trigger time "14:30"
{{ACTUAL_TIME}} Real trigger time "14:31"
{{CURRENT_DATE}} Today's date "2025-01-15"
{{DAY_OF_WEEK}} Day in English "monday"
{{DAY_NAME_FR}} Day in French "lundi"
{{DATE_FORMATTED}} Formatted date (French) "15 janvier 2025"
{{TIME_12H}} 12-hour format "2:30 PM"
{{TIMESTAMP}} Unix timestamp "1702651800000"
{{TIMEZONE}} Timezone "Europe/Paris"
{{WORKSPACE_NAME}} Current workspace name "my-project"
{{ACTIVE_FILE}} Currently open file path "/path/to/file.ts"
{{ACTIVE_FILE_NAME}} Currently open file name "file.ts"
{{PATTERN_ID}} Pattern identifier "daily-standup"
{{IS_REPEATING}} Whether recurring "true"
{{TIME_DRIFT}} Drift in seconds "45"

Free: 3 scheduled reminders  |  Premium: Unlimited


Manual Commands

Create custom "magic buttons" in the Command Palette for your most complex workflows.

Open Ctrl+Shift+P β†’ "ModCodePattern: Run Pattern" and pick any command you defined:

{
  "onManual": "deployProduction",
  "manualTitle": "🚀 Deploy to Production",
  "description": "Full deployment checklist",
  "notify": [
    { "commands": ["npm run build", "npm test"], "description": "🔧 Build & test" },
    { "file": "CHANGELOG.md", "description": "📋 Update changelog" },
    { "url": "https://dashboard.production.com", "description": "🌐 Open monitoring" }
  ]
}

More ideas:

Command Use case
🛠️ Project Setup Install deps, configure env, init hooks
📋 Quality Checklist Lint, test, build before merge
🔧 Weekly Maintenance npm audit, clean branches, update deps
👋 New Developer Onboarding Read docs, configure tools, join channels
🧪 Full Test Suite Unit, integration, e2e tests + coverage report

Free: 3 manual commands  |  Premium: Unlimited


Multilingual Descriptions

Write pattern descriptions in both English and French β€” ModCodePattern picks the right one based on VS Code language.

{
  "onChange": "src/api/**/*.ts",
  "notify": [
    {
      "file": "src/types/api.ts",
      "description": {
        "fr": "📘 Mettre Γ  jour les types API",
        "en": "📘 Update API types"
      }
    }
  ],
  "description": {
    "fr": "🔧 API modifiΓ©e",
    "en": "🔧 API modified"
  }
}

Your descriptions, notifications, and Todo items will appear in the user's language automatically.


Modular Configuration

Split your patterns across multiple files for large projects. Premium

{
  "imports": [
    ".mod-patterns/react.json",
    ".mod-patterns/api.json",
    ".mod-patterns/testing.json"
  ],
  "patterns": [
    {
      "onChange": "package.json",
      "notify": ["README.md"],
      "description": "📦 Dependencies changed"
    }
  ]
}

Each imported file contains its own "patterns" array. Keep your config clean and organized by domain:

.mod-patterns/
β”œβ”€β”€ react.json        ← Component patterns
β”œβ”€β”€ api.json          ← API & service patterns
β”œβ”€β”€ testing.json      ← Test automation patterns
└── onboarding.json   ← Developer onboarding

Git Event Automation 🔒 Premium

React to Git events in real time β€” branch switches, commits, pushes, and more.

Available Git triggers

Trigger Fires when...
onBranchSwitch You switch branches
onCommit A new commit is created
onBranchCreate A new branch is created
onBranchDelete A branch is deleted
onPull You pull from remote
onPush You push to remote

Examples

Auto-deploy when switching to main:

{
  "onBranchSwitch": { "to": "main" },
  "notify": [
    {
      "commands": ["npm run build:production", "npm run deploy"],
      "description": "🚀 Deploy {{PROJECT_NAME}} to production"
    }
  ]
}

Update changelog on feature commits:

{
  "onCommit": { "message": "feat:*" },
  "notify": [
    { "file": "CHANGELOG.md", "description": "📝 Document: {{COMMIT_MESSAGE}}" }
  ]
}

Setup environment on new feature branches:

{
  "onBranchCreate": { "name": "feature/*" },
  "notify": [
    { "file": "docs/features/{{BRANCH_NAME}}.md", "description": "📝 Create feature doc" },
    { "commands": ["npm install"], "description": "📦 Install dependencies" }
  ]
}

Auto-install after pull:

{
  "onPull": { "remote": "origin", "branch": "main" },
  "notify": [
    { "commands": ["npm install"], "description": "📦 Install new dependencies" }
  ]
}

Git variables (13+)

Variable Description Example
{{BRANCH_NAME}} Current branch feature/user-auth
{{BRANCH_TYPE}} Detected type feature, hotfix, main
{{BRANCH_PREFIX}} Branch prefix feature, release
{{BRANCH_SUFFIX}} Branch suffix user-auth, 123
{{BRANCH_PREVIOUS}} Previous branch develop
{{COMMIT_MESSAGE}} Commit message feat: add login
{{COMMIT_AUTHOR}} Commit author Jane Doe
{{REPOSITORY_NAME}} Repository name my-app
{{REPOSITORY_PATH}} Repository absolute path /Users/dev/projects/app
{{PROJECT_NAME}} Project name @company/frontend
{{REMOTE_NAME}} Remote name origin
{{BRANCH_CREATED}} Newly created branch feature/new-feature
{{BRANCH_DELETED}} Deleted branch hotfix/bug-123

Built-in Smart Features

JSON Auto-completion & Validation

The built-in JSON Schema gives you real-time suggestions and error checking as you type in .mod-patterns.json. Press Ctrl+Space to explore all options β€” triggers, notification types, variables, and properties are all documented inline.

Interactive Todo List

All pattern notifications appear as checkable tasks in a dedicated VS Code panel. Open it anytime with Ctrl+Shift+P β†’ "ModCodePattern: Open Todo List". Tasks include clickable file links, executable commands, and openable URLs.

Health Check

Run Ctrl+Shift+P β†’ "ModCodePattern: Run Health Check" to detect:

  • Overly broad patterns (**/*.*)
  • Non-existent directories referenced in patterns
  • Undefined or empty variables (adaptive, custom, runtime β€” each verified intelligently)
  • Results shown in a dedicated Output Channel

Pattern Toggle

Pause all patterns instantly with Ctrl+Shift+Alt+P (status bar shows "⏸️ Paused"), or disable individual patterns with enabled:

{
  "id": "heavy-pattern",
  "onChange": "src/**/*.ts",
  "enabled": false,
  "notify": [{ "file": "src/index.ts", "description": "📦 Update exports" }],
  "description": "Temporarily disabled"
}
  • Global toggle does not affect manual commands
  • enabled: false hides the pattern from manual command selection too

Silent Mode

Keep detections running in the background without popup notifications:

Settings β†’ ModCodePattern β†’ Silent Mode: true

The Todo list and status bar still work β€” you just won't be interrupted by popups.

Workspace Statistics

Run Ctrl+Shift+P β†’ "ModCodePattern: Show Workspace Statistics" to see active patterns count, usage limits, workspace info, and variable status at a glance.

Smart Notification System

  • 1st detection of a task β†’ popup notification shown
  • Repeated saves (Ctrl+S spam) β†’ notifications silenced
  • After task completion β†’ popup re-enabled if triggered again
  • The Todo list is the single source of truth β€” no duplicate popups

Real-World Examples

React project

{
  "patterns": [
    {
      "id": "react-component",
      "onCreateFile": "{{COMPONENTS_DIR}}/**/*.tsx",
      "notify": [
        { "file": "{{COMPONENTS_DIR}}/index.ts", "description": "📦 Export {{TRIGGER_NAME}}" },
        { "file": "src/stories/{{TRIGGER_NAME}}.stories.tsx", "description": "📖 Create Storybook story" },
        { "folder": "{{TESTS_DIR}}/components/", "description": "🧪 Add unit tests" }
      ],
      "showInlineHint": true,
      "description": "New React component"
    }
  ]
}

API + Documentation

{
  "id": "api-sync",
  "onChange": "src/api/**/*.ts",
  "contentFilter": "export",
  "notify": [
    { "file": "src/types/api.d.ts", "description": "📝 Update API types" },
    { "file": "docs/api/{{TRIGGER_NAME}}.md", "description": "📖 Update API docs" },
    { "file": "tests/api/{{TRIGGER_NAME}}.test.ts", "description": "🧪 Update tests" }
  ],
  "description": "🔧 API endpoint modified"
}

Full onboarding workflow (Linked Tasks)

{
  "patterns": [
    {
      "id": "onboarding-step-1",
      "onStart": true,
      "notify": [
        { "file": "README.md", "description": "📚 Read the project guide" },
        { "file": "docs/ARCHITECTURE.md", "description": "🏗️ Understand the architecture" }
      ],
      "triggerNext": "onboarding-step-2",
      "description": "👋 Step 1 β€” Read the docs"
    },
    {
      "id": "onboarding-step-2",
      "onStart": true,
      "notify": [
        { "commands": ["npm install"], "description": "📦 Install dependencies" },
        { "commands": ["npm run dev"], "description": "🚀 Start dev server" }
      ],
      "triggerNext": "onboarding-step-3",
      "description": "βš™οΈ Step 2 β€” Setup environment"
    },
    {
      "id": "onboarding-step-3",
      "onStart": true,
      "notify": [
        { "url": "https://company.slack.com/channels/dev-team", "description": "💬 Join the team channel" },
        { "file": "docs/CODING_STANDARDS.md", "description": "📏 Review coding standards" }
      ],
      "description": "🤝 Step 3 β€” Join the team"
    }
  ]
}

Multi-language project

{
  "onChange": "src/**/*.{py,java,rs,go}",
  "notify": [
    { "file": "tests/test_{{TRIGGER_NAME}}.{py,java,rs,go}", "description": "🧪 Update tests" }
  ],
  "description": "🔧 Source file modified"
}

Combined workflow (Chained + Git + Schedule + Manual)

{
  "patterns": [
    {
      "onBranchCreate": { "name": "feature/*" },
      "notify": [
        { "file": "docs/features/{{BRANCH_SUFFIX}}.md", "description": "📝 Document feature" }
      ],
      "description": "🌱 New feature branch"
    },
    {
      "onSchedule": { "time": "09:00", "days": ["monday", "wednesday", "friday"] },
      "notify": [
        { "url": "https://meet.google.com/standup", "description": "🕘 Standup β€” {{DAY_NAME_FR}}" }
      ]
    },
    {
      "onManual": "release",
      "manualTitle": "🚀 Release Checklist",
      "notify": [
        { "commands": ["npm test", "npm run build"], "description": "βœ… Validate" },
        { "file": "CHANGELOG.md", "description": "📋 Update changelog" },
        { "commands": ["npm version patch"], "description": "🔖 Bump version" }
      ]
    }
  ]
}

Ready-to-Use Pattern Library

Skip the setup β€” grab pre-built, tested patterns for your stack:

React Β· Vue.js Β· Angular Β· Node.js Β· TypeScript Β· Python Β· and more

Browse the Pattern Library β†’


Free vs Premium

Free β€” Perfect to get started

  • 5 file-monitoring patterns
  • 3 scheduled reminders
  • 3 manual commands
  • Full adaptive, runtime & custom variables
  • 4 notification types (file, folder, command, URL)
  • Chained patterns & linked tasks (triggerNext)
  • Inline hints, content filtering, pattern identification
  • Interactive Todo list, JSON schema, multilingual support
  • onStart trigger, pattern toggle, silent mode
  • Health check & workspace statistics

Premium β€” $6/month Β· For teams and power users

Everything in Free, plus:

  • Unlimited patterns, reminders, and manual commands
  • 17 variable transformations β€” {{NAME | camelCase}}, {{PATH | basename}}, {{NAME | replace:old:new}}
  • Git event automation β€” branch, commit, pull, push triggers
  • 13+ Git dynamic variables β€” {{BRANCH_NAME}}, {{COMMIT_MESSAGE}}, etc.
  • Modular configuration β€” split patterns across files with imports
  • Priority support
  • 14-day free trial

Upgrade to Premium β†’


All Commands

Command Shortcut Description
ModCodePattern: Open Todo List β€” View your pattern-generated tasks
ModCodePattern: Run Pattern β€” Execute a manual command
ModCodePattern: Show Adaptive Variables β€” See detected project variables & status
ModCodePattern: Toggle All Patterns Ctrl+Shift+Alt+P Pause / resume all patterns
ModCodePattern: Toggle Notifications β€” Mute / unmute popup notifications
ModCodePattern: Run Health Check β€” Diagnose pattern issues & variables
ModCodePattern: Show Workspace Statistics β€” View usage and limits
ModCodePattern: Show License Status β€” Check your current plan
ModCodePattern: Upgrade to Premium β€” Open the upgrade page
ModCodePattern: Refresh Cache β€” Reload variables and cache
ModCodePattern: Start β€” Trigger onStart patterns manually

Resources

  • Complete Documentation β€” Full interactive guide with all features
  • Pattern Library β€” Ready-to-use patterns by technology
  • Pattern Builder β€” Visual pattern generator
  • French Documentation β€” Guide utilisateur complet en franΓ§ais

Current version: v0.4.0  |  Engine: VS Code 1.74.0+  |  Startup: < 200ms  |  License: MIT

Made with precision for developers who care about consistency.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
Β© 2026 Microsoft