kovidgoyal/kitty · error

%s

Error message

%s

What it means

The remote control command executed inside kitty and returned ok:false; kitty @ surfaces the server-side error string (after printing any Python traceback to stderr). The message content is whatever error the in-kitty command raised.

Source

Thrown at tools/cmd/at/main.go:289

	}
	wid, err := strconv.Atoi(os.Getenv("KITTY_WINDOW_ID"))
	if err == nil && wid > 0 {
		io_data.rc.KittyWindowId = uint(wid)
	}
	err = create_serializer(global_options.password, "", io_data)
	if err != nil {
		return
	}
	var response *Response
	response, err = get_response(utils.IfElse(global_options.to_network == "", do_tty_io, do_socket_io), io_data)
	if err != nil || response == nil {
		return
	}
	if !response.Ok {
		if response.Traceback != "" {
			fmt.Fprintln(os.Stderr, response.Traceback)
		}
		return fmt.Errorf("%s", response.Error)
	}
	if io_data.handle_response != nil {
		return io_data.handle_response(utils.UnsafeStringToBytes(response.Data.as_str))
	}
	if response.Data.is_string && io_data.string_response_is_err {
		return fmt.Errorf("%s", response.Data.as_str)
	}
	if response.Data.as_str != "" {
		fmt.Println(strings.TrimRight(response.Data.as_str, "\n \t"))
	}
	return
}

func get_password(password string, password_file string, password_env string, use_password string) (ans password, err error) {
	if use_password == "never" {
		return
	}
	if password != "" {

View on GitHub (pinned to 6d5d0c4406)

Solutions

  1. Read the printed traceback/Error text — it names the real cause (bad match, missing file, invalid value)
  2. Fix the argument, e.g. verify window ids with 'kitty @ ls'
  3. For permission failures, adjust --allow-remote-control / remote_control policy in kitty.conf
Defensive patterns

Strategy: try-catch

Validate before calling

out, _ := cmd.CombinedOutput() // captures stderr traceback alongside the error

Try / catch

if err := run_CMD_NAME(...); err != nil { log.Printf("kitty RC error: %v", err) /* inspect response.Error and traceback */ }

Prevention

When it happens

Trigger: Any @ command whose handler fails in kitty: e.g. 'kitty @ set-colors nosuchfile.conf', invalid window ids, 'kitty @ focus-window --match id:999', etc. response.Ok is false and response.Error is propagated.

Common situations: Invalid arguments to @ subcommands, matching expressions that match no windows/tabs, files that don't exist, or attempting actions not permitted by the current remote control policy.

Related errors


AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27). Data as JSON: /api/errors/07851d17326af384. Report an issue: GitHub.