Skip to content

[Feature Request]: Projects — Grouped Workspaces with Persistent Custom Instructions #403

@HumbertoCG18

Description

@HumbertoCG18

Do you need to file a feature request?

  • I have searched the existing feature request and this feature request is not already filed.
  • I believe this is a legitimate feature request, not just a question or bug.

Feature Request Description

Feature Request: Projects — Grouped Workspaces with Persistent Custom Instructions

Summary

I'd like to propose a Projects feature for DeepTutor — a grouping layer above individual chats that binds a Knowledge Base, a TutorBot, and custom system instructions into a named, persistent workspace.

This mirrors the "Projects" concept found in Claude (Anthropic) and is currently one of the most requested organizational features in tools like DeepTutor.


Problem

Right now, DeepTutor organizes work as:

  • Knowledge Bases (documents)
  • TutorBots (agents with personality)
  • Chats (individual sessions)

These three entities are independent. There is no way to:

  • Group all chats related to a subject (e.g. "Operating Systems") in one place
  • Automatically attach a specific KB and TutorBot to every new chat in that context
  • Define persistent custom instructions that apply to all chats within a learning context
  • Switch between different "learning contexts" (subjects/courses) quickly

This becomes painful when using DeepTutor across multiple courses simultaneously — chats pile up without structure, and you must manually re-select the KB and TutorBot every time.


Proposed Solution

A Project would be a named container with:

Project: "Operating Systems"
├── Linked Knowledge Base: operating-systems
├── Linked TutorBot: tutor-os
├── Custom Instructions: "Always use C code examples. Focus on POSIX."
└── Chats: [session-1, session-2, session-3, ...]

Key behaviors:

  • When creating a new chat inside a Project, the linked KB and TutorBot are pre-selected automatically
  • Custom instructions are injected into the system prompt for every chat in the Project
  • The sidebar shows chats grouped by Project
  • Chats outside any Project remain accessible in a default "No Project" section

Minimal Data Schema

class Project(BaseModel):
    id: str
    name: str
    description: str = ""
    created_at: datetime
    knowledge_base_id: str = ""
    bot_id: str = ""
    system_instructions: str = ""
    chat_ids: list[str] = []

Persistence could follow the existing pattern under data/user/workspace/projects/.


Why This Fits DeepTutor's Architecture

DeepTutor already has all the building blocks:

  • TutorBots provide per-agent personality and memory ✅
  • Knowledge Bases provide scoped RAG ✅
  • The CLI is already structured around named entities ✅

Projects would be a thin organizational layer on top — not a rewrite of existing systems.


Questions Before Implementing

Before I start working on this, I want to check:

  1. Is this already on the roadmap? I couldn't find it in the README roadmap section.
  2. Are there architectural constraints I should be aware of before designing the schema?
  3. Would the team be open to a PR for this feature?
  4. Should this be implemented as a backend-first feature (service + router) with a frontend follow-up PR?

Happy to contribute this if the team is aligned. I'm already using DeepTutor daily for university coursework (PUCRS, Brazil) and this is the feature I miss the most.


DeepTutor version: v1.2.3 (Docker)
Labels suggested: enhancement, good first issue (if the team considers it scoped)

Related Module

Knowledge Base Management

Use Case

As a university student taking 5 courses simultaneously, I use DeepTutor as my primary study companion across all of them. Each course has its own Knowledge Base (with slides, papers, and textbooks) and its own TutorBot (with a custom SOUL tailored to that subject’s teaching style).

Currently, every time I open DeepTutor to study, I have to:

  1. Manually select the correct Knowledge Base for that subject
  2. Navigate to the correct TutorBot
  3. Start a new chat — which has no memory of which subject context it belongs to
  4. Scroll through an undifferentiated list of all chats across all subjects to find previous sessions

This creates real friction: after a week of studying, I have 30+ chats with no structure, mixing Operating Systems questions with Formal Methods exercises and AI homework.

With Projects, the flow becomes:

  1. Open DeepTutor → click "Operating Systems" project
  2. The correct KB and TutorBot are already attached
  3. Custom instructions (e.g. “Always use C examples, focus on POSIX APIs”) are already active
  4. All previous chats for that subject are grouped and visible
  5. New chats inherit the project context automatically

This feature would transform DeepTutor from a powerful but flat tool into a structured learning environment — especially valuable for users managing multiple subjects, projects, or clients simultaneously.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions