# Example plyngent configuration (no real secrets). # Copy to the path shown by: plyngent config path # Then set access_key_or_token and adjust models. # Optional. If omitted (or SQLite url is empty / ":memory:"), the CLI uses a # durable file under the platform user data dir (e.g. ~/.local/share/plyngent/chat.db). # [database] # implementation = "sqlite" # url = "/path/to/chat.db" [agent] system_prompt = "You are a careful coding assistant. Prefer small, verified edits." max_tool_result_chars = 32000 parallel_tools = true confirm_destructive = true path_denylist = ["/secrets/", ".ssh/", ".gnupg/"] # Soft context budget in estimated tokens (~4 chars/token when API usage missing). max_context_tokens = 200000 # Optional: custom compact/summarisation prompts (empty = built-in defaults). # compact_system_prompt = "" # compact_user_prefix = "Summarize the following conversation:\n\n{transcript}" # compact_seed_text = "Compacted from {src}:\n\n{summary}\n\nCarry on." # --- OpenAI-compatible (vLLM, LiteLLM, OpenAI, …) --- [providers.openai_compat] preset = "openai-compatible" url = "https://api.openai.com/v1" access_key_or_token = "sk-replace-me" [providers.openai_compat.models] "gpt-4o-mini" = { text = true, cost_factor = 1.0 } # --- OpenAI platform (Responses API; tag is "openai") --- # [providers.openai] # preset = "openai" # access_key_or_token = "sk-replace-me" # url = "https://api.openai.com/v1" # # Hosted/provider-side tools (OpenAI runs them; not local ToolRegistry). # # Examples: web_search, file_search (+ vector_store_ids), code_interpreter, mcp. # provider_tools = [ # { type = "web_search" }, # # { type = "file_search", vector_store_ids = ["vs_xxx"] }, # # { type = "code_interpreter", container = { type = "auto" } }, # ] # # [providers.openai.models] # "gpt-4o-mini" = { text = true } # --- DeepSeek (OpenAI-compatible convention) --- # Default models if [providers.*.models] is omitted: deepseek-v4-flash, deepseek-v4-pro. # [providers.deepseek] # preset = "deepseek" # access_key_or_token = "sk-replace-me" # # url defaults to https://api.deepseek.com when empty # extras = { convention = "openai" } # # [providers.deepseek.models] # "deepseek-v4-flash" = { text = true } # "deepseek-v4-pro" = { text = true }