Skip to content

idea: Agent rules system with global and thread-level scopes (inspired by Cursor .mdc rules) #8430

Description

@titansonico10

Problem Statement

Currently, Jan's assistant system prompt is scoped per thread and requires manual setup every time. There is no way to define persistent, reusable instructions that apply globally across all chats, or to layer multiple instruction sets (e.g. a base behavior rule + a thread-specific system prompt) without merging everything into a single bloated prompt.

Feature Idea

Implement a layered agent rules system, inspired by how Cursor handles .mdc rule files. The system would have two scopes:

1. 🌐 Global Rules

Instructions that apply to every thread and every chat in Jan, always. These act as a persistent base layer for the model's behavior across the entire app.

Examples of global rules:

  • "Always remember and reference what has been discussed earlier in the conversation. Never lose context."
  • "Always respond in the same language the user writes in."
  • "Never make up information. If you don't know, say so."

2. 🗂️ Thread / Project Rules

Instructions scoped to a specific thread or project. These are the user's custom system prompt for that particular conversation context.

Examples of thread rules:

  • "You are an expert Python developer. Write clean, documented code."
  • "You are a creative writing assistant. Focus on narrative and style."

How It Would Work

When the model receives a message, Jan composes the final system prompt by stacking the active rule layers in order:

[Global Rules] + [Thread/Project Rules] → Final system prompt sent to model

This means users can define a global context-management rule once and forget about it — it will always be applied on top of any thread-specific agent, without having to copy-paste it everywhere.

Why This Is Better Than the Current Approach

Current Proposed
One system prompt per thread Global rules + thread rules composed automatically
Must manually include all instructions in every assistant Write once, apply everywhere
Single giant prompt = hard to maintain Modular, scoped rules = clean and reusable
No persistent cross-thread behavior Global rules persist across all chats

Real-World Inspiration

This is directly inspired by Cursor's .mdc rules system, which allows:

  • Global rules (User Rules in Cursor settings) that apply to every interaction.
  • Project-level rules (.cursor/rules/*.mdc files) that apply only within a specific project/context.

This pattern has proven very effective for developers using Cursor and would bring similar power-user capabilities to Jan.

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions