Commands
kagi redirect
Manage Kagi search redirect rules from the terminal.
Synopsis
kagi redirect list
kagi redirect get <ID_OR_RULE>
kagi redirect create <RULE>
kagi redirect update <ID_OR_RULE> <RULE>
kagi redirect enable <ID_OR_RULE>
kagi redirect disable <ID_OR_RULE>
kagi redirect delete <ID_OR_RULE>Authentication
Required: KAGI_SESSION_TOKEN
Redirect management uses Kagi's authenticated settings pages.
Rule Format
Rules must use Kagi's current regex|replacement format.
kagi redirect create "^gh/(.+)$|https://github.com/$1"Subcommands
kagi redirect list
List redirect rules.
kagi redirect list | jq -r '.[] | "\(.enabled) \(.rule)"'kagi redirect get <ID_OR_RULE>
Fetch one redirect rule by id or exact rule text.
kagi redirect get "^gh/(.+)$|https://github.com/$1"kagi redirect create <RULE>
Create a redirect rule.
kagi redirect create "^gh/(.+)$|https://github.com/$1"kagi redirect update <ID_OR_RULE> <RULE>
Update a redirect rule by id or exact rule text.
kagi redirect update "12" "^gh/(.+)$|https://github.com/$1"kagi redirect enable <ID_OR_RULE>
Enable a redirect rule.
kagi redirect enable "12"kagi redirect disable <ID_OR_RULE>
Disable a redirect rule.
kagi redirect disable "12"kagi redirect delete <ID_OR_RULE>
Delete a redirect rule.
kagi redirect delete "12"Output Contract
list returns an array of summaries:
[
{
"id": "12",
"rule": "^gh/(.+)$|https://github.com/$1",
"enabled": true,
"edit_url": "/rewrite_rules/edit/12"
}
]get, create, and update return full rule details:
{
"rule_id": "12",
"rule": "^gh/(.+)$|https://github.com/$1",
"enabled": true
}enable and disable return:
{
"id": "12",
"enabled": true
}delete returns:
{
"id": "12"
}Examples
Create a redirect rule, verify it, then enable it:
kagi redirect create "^gh/(.+)$|https://github.com/$1"
kagi redirect list
kagi redirect enable "^gh/(.+)$|https://github.com/$1"Inspect only enabled rules:
kagi redirect list | jq -r '.[] | select(.enabled) | .rule'Notes
- Targets may be the numeric redirect id or the exact rule text.
- The CLI validates that rule bodies are non-empty and use the
regex|replacementform before sending them.
See Also
- bang - manage related shortcut behavior
- auth-matrix
- output-contract