{
  "id": "kakoune",
  "name": "Kakoune",
  "homepage": "https://github.com/mawww/kakoune",
  "description": "A code editor for the terminal.",
  "executables": [
    "kak"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/kak/kakrc",
      "[configHome]/kak/autoload/"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Open files in Kakoune",
    "description": "Start an editor session on files, optionally named, read-only or connected to an existing session. Filter mode, JSON UI and session piping are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://github.com/mawww/kakoune/blob/master/doc/kak.1",
        "revision": "master 2026-10-27",
        "evidence": "SYNOPSIS (rendered): kak [-d] [-n] [-ro] [-c session_id | -C session_id | -s session_id] [-ui ui_type] [-e command] [-E command] [file ...]; kak -l\n.It Fl n\nDo not load the system's kakrc.\n.It Fl l\nList existing sessions.\n.It Fl d\nRun as a headless session\n.It Fl e Ar command\nExecute\n.It Fl c Ar session_id\nConnect to the given session\n.It Fl C Ar session_id\nor create it if it does not exist.\n.It Fl s Ar session_id\nSet the current session name to\n.It Fl ro\nBegin in\n.Em readonly mode ,\n.It Ar file ...\nOne or more\n"
      }
    ],
    "field": [
      {
        "id": "session",
        "label": "Session name",
        "type": "string",
        "option": [
          "-s"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "connect",
        "label": "Connect to session",
        "type": "string",
        "option": [
          "-c"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "connect_or_create",
        "label": "Connect to or create session",
        "type": "string",
        "option": [
          "-C"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "readonly",
        "label": "Read-only",
        "type": "boolean",
        "option": [
          "-ro"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "no_rc",
        "label": "Skip system kakrc",
        "type": "boolean",
        "option": [
          "-n"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "command",
        "label": "Run command after client init",
        "type": "string",
        "option": [
          "-e"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "list",
        "label": "List sessions",
        "type": "boolean",
        "option": [
          "-l"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "files",
        "label": "Files",
        "type": "path",
        "position": 0,
        "multiple": true,
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "edit",
        "label": "Edit files",
        "fields": [
          "files",
          "session",
          "readonly",
          "command"
        ],
        "required": []
      },
      {
        "id": "view",
        "label": "View read-only",
        "set": {
          "readonly": [
            true
          ]
        },
        "lock": [
          "readonly"
        ],
        "fields": [
          "files",
          "readonly",
          "no_rc"
        ],
        "required": [
          "files"
        ]
      },
      {
        "id": "sessions",
        "label": "List sessions",
        "set": {
          "list": [
            true
          ]
        },
        "lock": [
          "list"
        ],
        "fields": [
          "list"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "files",
          "readonly",
          "session",
          "connect"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "connect_or_create",
          "no_rc",
          "command",
          "list"
        ]
      }
    ]
  }
}
