lince-dashboard/skills/lince-setup/SKILL.md
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.
npx skillsauth add risorseartificiali/lince lince-setupInstall 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.
Register a new AI coding agent with the lince ecosystem (agent-sandbox + lince-dashboard).
This skill walks you through self-identifying your capabilities, then generates and writes the correct TOML configuration so the dashboard can manage you and the sandbox can run you.
references/config-schema.md -- Full field reference for all config optionsreferences/examples.md -- Real agent configuration examplesscripts/validate-agent.sh -- Post-registration validation scriptYou are the agent being registered. Answer the following questions about YOURSELF. These are introspection questions -- describe your own binary, config, and runtime needs.
Provide the following information:
Binary / command name: What is the executable command to run you?
codex, gemini, opencode, kiro, aiderConfig directory: Where is your configuration stored on disk?
~/.codex/, ~/.config/opencode/, ~/.gemini/API key environment variables: What env vars do you need for authentication?
OPENAI_API_KEY, GEMINI_API_KEY, ANTHROPIC_API_KEYDefault CLI arguments: What args should be used for autonomous/headless mode?
["--full-auto"], ["--yes"], []Internal sandbox conflict: Do you use bwrap, Docker, or any internal sandbox?
--no-sandbox--sandbox nonebwrap_conflict = falseReport all five answers before proceeding.
Convert your binary name into a config key:
Examples: codex -> codex, open_code -> open-code, My Agent -> my-agent
Present the derived key to the user and ask for confirmation before continuing.
Before writing anything, check whether [agents.<key>] already exists in the sandbox config.
Read ~/.agent-sandbox/config.toml and search for a section matching your derived key.
Also check the dashboard config. The dashboard agents-defaults file is at
~/.agent-sandbox/agents-defaults.toml (for the dashboard). Check for an existing
[<key>] section there as well.
Using the information from Step 1, generate an [agents.<key>] block for
~/.agent-sandbox/config.toml:
[agents.<key>]
command = "<binary>"
default_args = [<args as quoted strings>]
env = { <API_KEY> = "$<API_KEY>" }
home_ro_dirs = ["<config_dir_relative_to_home>"]
home_rw_dirs = []
bwrap_conflict = <true|false>
disable_inner_sandbox_args = [<args if bwrap_conflict is true>]
Notes on field values:
home_ro_dirs paths are relative to ~ (e.g. .codex not ~/.codex/)env uses $VAR syntax for environment variable expansion at runtimedisable_inner_sandbox_args is only needed when bwrap_conflict = truereferences/config-schema.md for the full field referenceGenerate a dashboard agent type block. This goes in ~/.agent-sandbox/agents-defaults.toml
as a top-level [<key>] section (not under [agents.]):
[<key>]
command = ["agent-sandbox", "run", "-a", "<key>", "-p", "{project_dir}"]
display_name = "<Agent Display Name>"
short_label = "<3CH>"
color = "<color>"
sandboxed = true
has_native_hooks = false
pane_title_pattern = "<binary>"
status_pipe_name = "lince-status"
Apply these defaults (the skill knows the lince conventions):
| Field | Default Value | Rationale |
|-------|---------------|-----------|
| has_native_hooks | false | Only Claude Code has native status hooks |
| status_pipe_name | "lince-status" | Standard pipe for non-Claude agents via lince-agent-wrapper |
| sandboxed | true | Lince convention: all agents run sandboxed |
| pane_title_pattern | binary name | Used by dashboard to detect agent panes |
| color | suggest based on name | Pick from: red, green, yellow, blue, magenta, cyan, white |
| short_label | first 3 chars, uppercase | 3-character label for table column |
If the agent needs API key env vars, add an [<key>.env_vars] sub-table:
[<key>.env_vars]
<API_KEY> = "$<API_KEY>"
If there is a bwrap conflict, include:
bwrap_conflict = true
disable_inner_sandbox_args = [<args>]
If the agent needs config dirs mounted read-only:
home_ro_dirs = ["~/.config_dir/"]
Present BOTH generated TOML blocks to the user in a single summary:
=== Sandbox Config (appended to ~/.agent-sandbox/config.toml) ===
<sandbox TOML block>
=== Dashboard Config (appended to ~/.agent-sandbox/agents-defaults.toml) ===
<dashboard TOML block>
Ask the user to confirm before writing. Upon confirmation:
Sandbox config: Append the sandbox TOML block to ~/.agent-sandbox/config.toml
cat >> ~/.agent-sandbox/config.toml or equivalent append operationDashboard config: Append the dashboard TOML block to ~/.agent-sandbox/agents-defaults.toml
cat >> ~/.agent-sandbox/agents-defaults.toml or equivalent append operationThis skill must be idempotent: if a section already exists (detected in Step 3), update it in place rather than appending a duplicate.
After writing, run the validation script to verify correctness:
bash <skill_dir>/scripts/validate-agent.sh <key>
Or run the dry-run command directly:
agent-sandbox run -a <key> -p /tmp/test --dry-run
Check the output for errors. If the dry run succeeds, registration is complete. If it fails, review the error message, fix the config, and re-run validation.
has_native_hooks field should be false for all agents except Claude Code.
Agents without native hooks use lince-agent-wrapper for status reporting.status_pipe_name for non-Claude agents is always lince-status.
Claude Code uses claude-status (reserved).{project_dir} placeholder in the dashboard command template is replaced at
runtime with the actual project directory path.references/config-schema.md for complete field documentation.references/examples.md for real-world agent configuration examples.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
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.
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.