Feature Request: Enhanced Prompt Customization for Advanced Tagging Workflows
First, a huge thank you!
Karakeep is an amazing self-hosted service, and the AI tagging integration is genuinely game-changing. The work you and the team put into this is seriously appreciated. Thank you for the excellent open-source work!
Problem Statement
While using Karakeep for consolidating bookmarks with AI tagging, I encountered a limitation with prompt customization that makes it difficult to implement advanced tagging strategies (specifically, tag consolidation and deduplication):
Current Behavior:
- Base prompts are hardcoded (e.g., "Aim for a variety of tags")
- Users can only append custom rules (max 500 characters)
- When custom rules conflict with base prompts, the AI receives contradictory instructions
Example of the conflict:
Base prompt: "Aim for a variety of tags, including broad categories, specific keywords..."
User appends: "Max 4 tags. Reuse existing tags when possible." = Conflicting instructions sent to LLM
Why This Matters
For users implementing tag consolidation strategies (reusing existing tags instead of creating new ones), the current rigid prompts make it impossible to:
- Enforce strict tag limits
- Reference existing user tags with semantic similarity checking
- Override "create variety" behavior with "consolidate effectively" behavior
Suggested Solution
Option 1 (Recommended): Full Prompt Replacement
- Allow users to completely replace (not just append to) default prompts
- Increase character limit to 1500-2000 characters (or make it unlimited for power users)
- Keep sensible defaults, but make them overridable
Option 2: Structured Prompt Templates
- Provide sections users can override: [instructions], [rules], [examples], [output format]
- Each section has flexible length
- System combines them intelligently without conflicts
Use Case
Desired workflow: INFERENCE_TEXT_MODEL: mistral:7b-instruct CUSTOM_TEXT_PROMPT_OVERRIDE: | Max 4 tags. Prioritize reusing from existing tags: {$userTags}. Only create NEW tag if no semantic match (80%+ similarity). Tags: lowercase, spaces only. Broad, not one-off/event-specific. Return JSON: {"tags": [...]}
Current Workaround
Users like myself are having to build n8n/webhook proxies to intercept and replace prompts before sending to Ollama, which defeats the simplicity of self-hosted Karakeep.
Additional Notes
- The
{$userTags}placeholder is excellent and shows the architecture is designed for this - The 500-char limit seems arbitrary for a self-hosted, open-source project
- This would be a game-changer for users implementing advanced tagging strategies
Thank You Again
Thanks for considering this. Karakeep is genuinely fantastic, and this feature would make it even more powerful for self-hosted deployments. Keep up the amazing work!
Source: karakeep-app/karakeep