This commit is contained in:
2026-09-19 20:56:43 +01:00
parent 19e49e90f5
commit 84bd80f82a
7 changed files with 237 additions and 106 deletions
+18 -17
View File
@@ -21,25 +21,26 @@
enable = true;
extraPackages = with pkgs; [
rust-analyzer
# rust-analyzer
typescript-language-server
];
context = ''
Instructions:
Instructions:
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
- NO EMOJIS
- NO EMOJIS
- If you've been looking a lot for something you cant seem to find and you havent been explicitly told to keep going, you're allowed to say 'i cant find it'
'';
settings = {
"lsp" = true;
plugin = [
"@tarquinen/opencode-dcp@latest"
"@xberg-io/opencode-xberg"
"@xberg-io/opencode-crawlberg"
"@xberg-io/opencode-html-to-markdown"
# "@xberg-io/opencode-crawlberg"
# "@xberg-io/opencode-html-to-markdown"
"@xberg-io/opencode-liter-llm"
"opencode-plugin-litellm@latest"
"@dietrichgebert/ponytail"
@@ -51,7 +52,7 @@
# Replace/extend the per-model system prompt via
# ~/.config/opencode/system-prompts.json
# (https://github.com/kmcquade/opencode-sysprompt-override-plugin)
"opencode-sysprompt-override@latest"
# "opencode-sysprompt-override@latest"
];
provider.litellm = {
npm = "@ai-sdk/openai-compatible";
@@ -68,14 +69,14 @@
apiKey = "{env:OPENCODE_GO_API_KEY}";
};
};
provider.commandcode = {
npm = "@ai-sdk/openai-compatible";
name = "Command Code";
options = {
baseURL = "https://api.commandcode.ai/provider/v1";
apiKey = "{env:COMMANDCODE_API_KEY}";
};
};
# provider.commandcode = {
# npm = "@ai-sdk/openai-compatible";
# name = "Command Code";
# options = {
# baseURL = "https://api.commandcode.ai/provider/v1";
# apiKey = "{env:COMMANDCODE_API_KEY}";
# };
# };
};
# TUI plugin: token-tracker (https://github.com/eserete/opencode-token-tracker)
tui = {
+57 -14
View File
@@ -16,23 +16,20 @@
# pkgs.lean-lsp-mcp
];
settings = {
"defaultProvider" = "opencode-go";
"defaultModel" = "mimo-v2.5";
"defaultThinkingLevel" = "medium";
"litellm" = {
"providers" = {
"litellm" = {
"displayName" = "scuggo";
"baseUrl" = "https://ai-proxy.fwds.scug.io";
"apiKey" = "$SCUG_IO_API_KEY";
"compat" = {
"sendSessionAffinityHeaders" = true;
};
};
};
"skills" = {
"enabled" = true;
};
"compat" = {
"sendSessionAffinityHeaders" = true;
};
};
"mcp" = {
"enabled" = true;
@@ -66,7 +63,8 @@
"npm:pi-opencode-go-cache"
"npm:@pi-vault/pi-dcp"
"git:github.com/DietrichGebert/ponytail"
"npm:pi-commandcode-provider"
"npm:pi-open-tui"
# "npm:pi-commandcode-provider"
];
};
context = ''
@@ -173,20 +171,26 @@
"type" = "api_key";
"key" = "$OPENCODE_GO_API_KEY";
};
"command-code" = {
"type" = "api_key";
"key" = "$COMMANDCODE_API_KEY";
};
# "command-code" = {
# "type" = "api_key";
# "key" = "$COMMANDCODE_API_KEY";
# };
};
};
# Cache/routing compat overrides (provider-level minimal)
home.file.".pi/agent/models.json" = {
text = builtins.toJSON {
providers = {
"providers" = {
"opencode" = {
"compat" = {
"sendSessionAffinityHeaders" = true;
};
};
"opencode-go" = {
compat = {
supportsLongCacheRetention = true;
"compat" = {
"supportsLongCacheRetention" = true;
"sendSessionAffinityHeaders" = true;
};
};
};
@@ -223,6 +227,45 @@
};
};
# open-tui.json config
home.file.".pi/agent/open-tui.json" = {
text = builtins.toJSON {
enabled = true;
settingsLanguage = "en";
cursorStyle = "block";
fullscreen = {
wheelScrollLines = 4;
};
icons = {
mode = "auto";
};
footerSegments = {
cwd = true;
sessionName = false;
gitBranch = true;
gitStatus = true;
gitCommit = false;
runtime = true;
context = true;
tokens = true;
cost = true;
extensionStatuses = false;
};
telemetry = {
enabled = true;
tps = false;
ttft = false;
duration = true;
tokens = true;
stalls = true;
cost = true;
};
thinkingPeek = {
lines = 1;
};
};
};
# pi-spark config
home.file.".pi/agent/spark.json" = {
text = builtins.toJSON {