{ "id": "com.forkless.mattermore", "name": "Matty", "description": "AI chat agent powered by Ollama.", "version": "0.1.15", "min_server_version": "11.6.1", "server": { "executables": { "linux-amd64": "server/dist/plugin-linux-amd64", "linux-arm64": "server/dist/plugin-linux-arm64", "darwin-amd64": "server/dist/plugin-darwin-amd64", "darwin-arm64": "server/dist/plugin-darwin-arm64" } }, "settings_schema": { "header": "Configure the connection to your Ollama instance.", "footer": "", "settings": [ { "key": "OllamaURL", "display_name": "Ollama Server URL", "type": "text", "help_text": "Base URL of the Ollama API, e.g. http://10.0.0.5:11434", "placeholder": "http://localhost:11434", "default": "http://localhost:11434" }, { "key": "DefaultModel", "display_name": "Default Model", "type": "dropdown", "help_text": "Model to use for chat responses.", "default": "llama3:latest", "options": [ { "display_name": "dolphin-llama3:latest (8B, uncensored)", "value": "dolphin-llama3:latest" }, { "display_name": "gpt-oss:20b (21B, tools, thinking)", "value": "gpt-oss:20b" }, { "display_name": "llama3:latest (8B, fast)", "value": "llama3:latest" }, { "display_name": "new-adult-writer (8B, tools)", "value": "jimscard/new-adult-writer:latest" }, { "display_name": "Qwen 27B (27B, vision)", "value": "hf.co/DavidAU/Qwen3.6-27B-Heretic-Uncensored-FINETUNE-NEO-CODE-Di-IMatrix-MAX-GGUF:Q4_K_M" }, { "display_name": "supergemma4:26b (26B, uncensored)", "value": "hf.co/Jiunsong/supergemma4-26b-uncensored-gguf-v2:Q4_K_M" } ] }, { "key": "Persona", "display_name": "Bot Persona", "type": "dropdown", "help_text": "The bot's character. Pick a persona or set a custom one in the config file.", "default": "assistant", "options": [ { "display_name": "D&D dungeon master", "value": "dnd" }, { "display_name": "Donald Trump", "value": "trump" }, { "display_name": "Drunken Jeanine Pirro", "value": "pirro" }, { "display_name": "French mime", "value": "mime" }, { "display_name": "George Carlin", "value": "carlin" }, { "display_name": "Gordon Ramsay (code review)", "value": "ramsay" }, { "display_name": "Grumpy sysadmin", "value": "sysadmin" }, { "display_name": "Helpful assistant (concise)", "value": "assistant" }, { "display_name": "Infomercial host (1980s)", "value": "infomercial" }, { "display_name": "Medieval court jester", "value": "jester" }, { "display_name": "Motivational speaker", "value": "motivational" }, { "display_name": "Noir detective", "value": "noir" }, { "display_name": "Overly polite Canadian", "value": "canadian" }, { "display_name": "Philosophical overthinker", "value": "philosopher" }, { "display_name": "Pirate captain", "value": "pirate" }, { "display_name": "Shakespeare himself", "value": "shakespeare" }, { "display_name": "Surfer dude", "value": "surfer" }, { "display_name": "Tech support scammer (2008)", "value": "scammer" }, { "display_name": "Tired parent", "value": "tiredparent" } ] }, { "key": "RepeatPenalty", "display_name": "Repeat Penalty", "type": "number", "help_text": "Penalises repeated words. 10 = none, 11 = mild, 12 = strong. Helps with repetitive output. (Internally divided by 10.)", "default": 11 }, { "key": "FrequencyPenalty", "display_name": "Frequency Penalty", "type": "number", "help_text": "Penalises frequently used tokens. 0 = none, 1 = mild, 5 = strong. Reduces word/phrase repetition. (Internally divided by 10.)", "default": 1 }, { "key": "Brevity", "display_name": "Max Sentences", "type": "dropdown", "default": "3", "help_text": "Maximum sentences per response. Suffixed to the persona automatically.", "options": [ { "display_name": "1 sentence", "value": "1" }, { "display_name": "2 sentences", "value": "2" }, { "display_name": "3 sentences", "value": "3" }, { "display_name": "5 sentences", "value": "5" }, { "display_name": "10 sentences", "value": "10" }, { "display_name": "Unlimited", "value": "0" } ] }, { "key": "DebugLogging", "display_name": "Debug Logging", "type": "bool", "help_text": "Enable detailed request/response logging in the server logs.", "default": false }, { "key": "CustomPersona", "display_name": "Custom Persona (overrides dropdown)", "type": "text", "help_text": "Type a custom persona here to override the dropdown. Leave empty to use the dropdown selection. E.g. \"a sarcastic AI that quotes Monty Python\".", "placeholder": "", "default": "" }, { "key": "MaxTokens", "display_name": "Max Response Tokens", "type": "number", "help_text": "Maximum tokens per response (0 = model default).", "default": 2048 }, { "key": "RateLimitPerMinute", "display_name": "Rate Limit (requests/minute/user)", "type": "number", "help_text": "Maximum requests per minute per user. 0 = unlimited.", "default": 0 }, { "key": "AllowedUserIDs", "display_name": "Allowed User IDs (comma-separated)", "type": "text", "help_text": "Restrict to specific user IDs. Empty = all users.", "default": "" }, { "key": "StopWords", "display_name": "Stop Words (comma-separated)", "type": "text", "help_text": "When the user says one of these, the bot responds briefly and disengages.", "placeholder": "thanks, thank you, bye, goodbye, that's all, done", "default": "thanks, thank you, bye, goodbye, see you, that's all, that's it, done, all done, stop, quit, end" } ] } }