{
  "id": "agent-knock-knock",
  "name": "Agent Knock Knock",
  "categories": ["developer-tools"],
  "description": "Select a conversation once; AKK prefers its verified backend, coalesces only exact terminal associations and preserves eligible terminal fallback without replaying uncertain input. Control loaded Codex CLI threads directly through their backend for discovery, tasks, exact completion callbacks, approvals, answers and permission settings without tmux or Herdr. Discover Codex Desktop persisted expanded sidebar members or explicitly search history, retain unconnected rows, send tasks to live owners, watch exact completion, approve or reject command/file requests, answer blocking and asynchronous questions, adjust current-conversation permissions and model settings, and cancel exact tasks. Control Codex and Claude Code through shared tmux or Herdr terminals, with closed native status inspection, model and permission control, compatibility warnings, native-thread lifecycle controls, managed monitoring, durable Terminal Watch, approvals, and human takeover.",
  "activation": {
    "onStartup": true,
    "onCommands": ["akk"]
  },
  "commandAliases": [
    {
      "name": "akk",
      "kind": "runtime-slash"
    }
  ],
  "contracts": {
    "tools": [
      "agent_knock_knock_list",
      "agent_knock_knock_watch",
      "agent_knock_knock_unwatch",
      "agent_knock_knock_list_resumable_threads",
      "agent_knock_knock_native_inspect",
      "agent_knock_knock_model_options",
      "agent_knock_knock_repair_model_control",
      "agent_knock_knock_set_model",
      "agent_knock_knock_permission_options",
      "agent_knock_knock_set_permissions",
      "agent_knock_knock_identify_foreground",
      "agent_knock_knock_identify_and_send",
      "agent_knock_knock_new_thread",
      "agent_knock_knock_reconcile_binding",
      "agent_knock_knock_resume_thread",
      "agent_knock_knock_status",
      "agent_knock_knock_send",
      "agent_knock_knock_respond",
      "agent_knock_knock_respond_interaction",
      "agent_knock_knock_renew",
      "agent_knock_knock_recover",
      "agent_knock_knock_retry_callback",
      "agent_knock_knock_cancel",
      "agent_knock_knock_close",
      "agent_knock_knock_approve"
    ]
  },
  "toolMetadata": {
    "agent_knock_knock_list": {
      "optional": true
    },
    "agent_knock_knock_watch": {
      "optional": true
    },
    "agent_knock_knock_unwatch": {
      "optional": true
    },
    "agent_knock_knock_list_resumable_threads": {
      "optional": true
    },
    "agent_knock_knock_native_inspect": {
      "optional": true
    },
    "agent_knock_knock_model_options": {
      "optional": true
    },
    "agent_knock_knock_repair_model_control": {
      "optional": true
    },
    "agent_knock_knock_set_model": {
      "optional": true
    },
    "agent_knock_knock_permission_options": {
      "optional": true
    },
    "agent_knock_knock_set_permissions": {
      "optional": true
    },
    "agent_knock_knock_identify_foreground": {
      "optional": true
    },
    "agent_knock_knock_identify_and_send": {
      "optional": true
    },
    "agent_knock_knock_new_thread": {
      "optional": true
    },
    "agent_knock_knock_reconcile_binding": {
      "optional": true
    },
    "agent_knock_knock_resume_thread": {
      "optional": true
    },
    "agent_knock_knock_status": {
      "optional": true
    },
    "agent_knock_knock_send": {
      "optional": true
    },
    "agent_knock_knock_respond": {
      "optional": true
    },
    "agent_knock_knock_respond_interaction": {
      "optional": true
    },
    "agent_knock_knock_renew": {
      "optional": true
    },
    "agent_knock_knock_recover": {
      "optional": true
    },
    "agent_knock_knock_retry_callback": {
      "optional": true
    },
    "agent_knock_knock_cancel": {
      "optional": true
    },
    "agent_knock_knock_close": {
      "optional": true
    },
    "agent_knock_knock_approve": {
      "optional": true
    }
  },
  "skills": [
    "templates/openclaw-skills/agent-knock-knock"
  ],
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "storeDir": {
        "type": "string",
        "description": "Stable AKK Store root. Defaults to ~/.agent-knock-knock/store and contains the compatibility manifest, authoritative managed Sessions and Turns, plus durable terminal and Desktop Watch records."
      },
      "openclawBin": {
        "type": "string",
        "description": "Path to the OpenClaw CLI used by callback delivery. Defaults to PATH plus common user install locations."
      },
      "codexHome": {
        "type": "string",
        "description": "Optional CODEX_HOME path used for Codex terminal metadata and local Desktop conversation discovery and IPC."
      },
      "idleTimeoutMinutes": {
        "type": "number",
        "description": "Minutes a completed or idle AKK turn record remains retained before controlled reconciliation closes that turn. The continuing AKK session identity is preserved. Defaults to 10080."
      },
      "agentTimeoutMinutes": {
        "type": "number",
        "description": "Minutes without terminal activity or a coding-agent callback before AKK marks a managed turn stalled. Defaults to 60."
      },
      "agentHardTimeoutMinutes": {
        "type": "number",
        "exclusiveMinimum": 0,
        "description": "Default hard monitoring lifetime for Codex CLI backend/Desktop Send and Watch, Terminal Watch, and managed terminal tasks; also used by backend renew when minutes is omitted. Explicit call parameters take precedence. Defaults to 720 minutes. Independent of the managed terminal inactivity timeout."
      },
      "autoApprove": {
        "type": "object",
        "additionalProperties": false,
        "description": "Deterministic, default-disabled exact command-vector and workspace policy for terminal-controlled Codex and hookless Claude. Claude auto-approval also requires a current managed one-time Bash prompt with matching local transcript evidence. Policy configuration is trusted and never exposed as model-controlled tool parameters.",
        "properties": {
          "enabled": {
            "type": "boolean",
            "default": false
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": ["id", "agents", "workspaces", "commands"],
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "agents": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string",
                    "enum": ["codex", "claude"]
                  }
                },
                "workspaces": {
                  "type": "array",
                  "minItems": 1,
                  "description": "One or more absolute workspace roots authorized by this automatic-approval rule.",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "commands": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
