lince-dashboard/skills/lince-configure/SKILL.md
Configure LINCE sandbox and dashboard settings in natural language. Use when asked to set up providers, change security levels, modify agent settings, configure API keys, adjust sandbox behavior, or any "how do I configure" question about LINCE. Handles both sandbox (~/.agent-sandbox/config.toml) and dashboard (~/.config/lince-dashboard/config.toml) configuration.
npx skillsauth add risorseartificiali/lince lince-configureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Configure LINCE (sandbox + dashboard) through conversation. This skill reads the
documentation, understands the user's intent, and uses lince-config CLI to make
changes safely — never editing TOML files directly.
| Tool | Path | Description |
|------|------|-------------|
| CLI | lince-config | Structured read/write for TOML config (preserves comments/formatting) |
| Docs | references/ | Configuration reference docs loaded on-demand |
All commands accept --target sandbox (default) or --target dashboard.
# Read
lince-config get <dotted.key> [--json] # e.g. security.unshare_net
lince-config list [section] [--json] # e.g. providers, agents
# Write
lince-config set <dotted.key> <value> [-q] # auto-coerces bool/int/str
lince-config append <dotted.key> <value> [-q] # append to list (dedup)
lince-config remove <dotted.key> <value> [-q] # remove from list
lince-config unset <dotted.key> [-q] # remove key/section
# Diagnostics
lince-config check [--json] # doctor-style checks
lince-config validate [--json] # schema validation
Always use -q (quiet) for write operations during guided setup to keep output clean.
Always use --json for read operations to parse results programmatically.
| Target | File | Purpose |
|--------|------|---------|
| sandbox | ~/.agent-sandbox/config.toml | Sandbox behavior, providers, agents, security |
| dashboard | ~/.config/lince-dashboard/config.toml | Dashboard UI, agent types, layout |
Before doing anything else, unless the user has already stated a clear intent
(e.g. "configure Vertex AI", "enable paranoid mode"), ask the user how they want
to proceed using AskUserQuestion:
If the user's first message already contains a specific configuration request, skip this step and go straight to Step 1 (intent is clear). The choice question is only for ambiguous "help me configure LINCE" openings.
When in guided menu mode, use AskUserQuestion at every decision point
(area to configure, specific option, confirmation) rather than free-text prompts.
When in conversational mode, ask open questions and infer intent.
Language: Match the language the user is using in the current session. Do not hardcode a language in the skill — if they write in Italian, respond in Italian; if English, respond in English.
Listen to what the user wants. Common intents:
| User says | They want | |-----------|-----------| | "Configure Vertex AI" / "Add a provider" | Add/edit a provider (env-var bundle) | | "Use paranoid mode" / "Increase security" | Change sandbox level or security settings | | "Add API key for..." | Configure a provider env section | | "Change default agent" | Set dashboard.default_agent_type | | "Allow git push" / "Less restrictive" | Modify security settings | | "Configure Codex" / "Add Gemini" | Agent-specific setup | | "Show my config" / "What's configured?" | Read and present current config | | "Fix this error" / "Something's broken" | Run check + diagnose | | "What sandbox level should I use?" | Explain levels, help choose |
Before making changes, always check the current configuration:
lince-config list --json # all sections
lince-config list providers --json # existing providers
lince-config get <relevant.key> --json # specific value
lince-config check --json # any issues?
Load the relevant reference file for detailed field docs:
| Topic | Reference File | |-------|---------------| | Sandbox config keys | references/sandbox-config.md | | Dashboard config keys | references/dashboard-config.md | | Sandbox levels explained | references/sandbox-levels.md | | Provider setup | references/providers.md | | Security model | references/security.md |
Load the reference ONLY when you need details you don't already know. The most common operations are documented inline below.
Use lince-config set / append / unset with -q for clean output. Make changes
one at a time, in logical order.
After changes, always verify:
lince-config check --json
lince-config validate --json
lince-config get <changed.key> --json # confirm the value
Tell the user what was changed and why, in plain language. Mention any warnings
from check and suggest follow-up actions.
Providers are named env-var bundles that switch model provider/account.
Anthropic Direct API:
lince-config set providers.anthropic.description "Anthropic Direct API" -q
lince-config set providers.anthropic.env.ANTHROPIC_API_KEY "sk-ant-..." -q
Vertex AI for Claude:
lince-config set claude.providers.vertex.description "Vertex AI" -q
lince-config set claude.providers.vertex.env.CLAUDE_CODE_USE_VERTEX "1" -q
lince-config set claude.providers.vertex.env.ANTHROPIC_VERTEX_PROJECT_ID "<project-id>" -q
lince-config set claude.providers.vertex.env.ANTHROPIC_VERTEX_REGION "us-east5" -q
Z.AI / GLM:
lince-config set providers.zai.description "Z.AI / GLM" -q
lince-config set providers.zai.env.OPENAI_API_KEY "$ZAI_API_KEY" -q
lince-config set providers.zai.env.OPENAI_BASE_URL "https://open.bigmodel.cn/api/paas/v4" -q
Set as default:
lince-config set sandbox.default_provider "<name>" -q
Enable paranoid (kernel network isolation + credential proxy):
lince-config set security.unshare_net true -q
lince-config set security.credential_proxy true -q
Add network allowlist entries:
lince-config append security.allow_domains "pypi.org" -q
lince-config append security.allow_domains "files.pythonhosted.org" -q
Disable git push blocking (per-project only!):
# In project-local .agent-sandbox/config.toml:
lince-config set security.block_git_push false -q
Enable session logging:
lince-config set logging.enabled true -q
lince-config set logging.dir "~/.agent-sandbox/logs" -q
Change default agent args:
lince-config set agents.codex.default_args '["--full-auto", "--model", "o4-mini"]' -q
Add home directory access:
lince-config append agents.claude.home_ro_dirs ".config/gcloud" -q
lince-config append agents.codex.home_rw_dirs ".codex" -q
Default agent type:
lince-config set dashboard.default_agent_type "claude" --target dashboard -q
Agent layout (floating/tiled):
lince-config set dashboard.agent_layout "tiled" --target dashboard -q
Max concurrent agents:
lince-config set dashboard.max_agents 12 --target dashboard -q
lince-config unset providers.vertex -q
# If it was the default, clear that too:
lince-config get sandbox.default_provider --json
lince-config set sandbox.default_provider "" -q
| Level | Network | Filesystem | Use When |
|-------|---------|------------|----------|
| paranoid | Kernel-isolated, proxy only | Scratch home dirs | Untrusted input, unfamiliar repos |
| normal | Open (inherited) | Standard mounts | Daily work (default) |
| permissive | Open | + gh CLI, cache, known_hosts | Need PRs/GitHub from agent |
Selected per run: agent-sandbox run --sandbox-level paranoid
Or per agent in dashboard config: sandbox_level = "paranoid"
Providers can be top-level ([providers.<name>]) or agent-specific
([<agent>.providers.<name>]). Agent-specific providers override top-level
for that agent only. If both exist for the same name, the agent-specific one wins.
# Top-level (shared by all agents):
lince-config set providers.openai.description "OpenAI" -q
# Agent-specific (claude only):
lince-config set claude.providers.vertex.description "Vertex AI" -q
chmod 600. lince-config check
warns if permissions are too open.$VAR syntax in env values means "resolve from host at spawn time" — tell
the user they can use literal values or $VAR references.security.unshare_net = true, always remind them that
security.credential_proxy = true is also needed (paranoid mode).lince-config CLIcheck and validate-q for writes during guided setup--json for reads to parse programmaticallyagent-sandbox check" or "Restart the dashboard to apply"tools
Add support for a new AI coding agent (or CLI tool) to lince-dashboard and agent-sandbox. The agent provides its own requirements (binary, config dirs, API keys, sandbox behavior) and this skill generates correct TOML configuration. Use when adding a new agent type, setting up multi-agent support, or when asked to add agent, new agent type, support cursor, support bob, support cli, register agent, setup agent, configure agent for dashboard.
development
Register a new AI coding agent with the lince-dashboard and agent-sandbox. The agent provides its own requirements (binary, config dirs, API keys, sandbox behavior) and this skill generates correct TOML configuration. Use when adding a new agent type, setting up multi-agent support, or when asked to add agent, register agent, setup agent, configure agent for dashboard.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.