{"record":{"id":"1b6d3cace850a05f","repo":"kovidgoyal/kitty","slug":"can-only-specify-one-directory-to-search-in","errorCode":null,"errorMessage":"Can only specify one directory to search in","messagePattern":"Can only specify one directory to search in","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kittens/choose_files/main.go","lineNumber":976,"sourceCode":"\t}\n\thandler.rl = readline.New(lp, readline.RlInit{\n\t\tPrompt: \"> \", ContinuationPrompt: \". \", Completer: FilePromptCompleter(getcwd),\n\t})\n\thandler.search_rl = readline.New(lp, readline.RlInit{DontMarkPrompts: true})\n\tif err = handler.set_state_from_config(conf, opts); err != nil {\n\t\treturn 1, err\n\t}\n\thandler.result_manager = NewResultManager(handler.err_chan, &handler.state, lp.WakeupMainThread)\n\thandler.preview_manager = NewPreviewManager(handler.err_chan, &handler.state, lp.WakeupMainThread)\n\tswitch len(args) {\n\tcase 0:\n\t\tif default_cwd, err = os.Getwd(); err != nil {\n\t\t\treturn\n\t\t}\n\tcase 1:\n\t\tdefault_cwd = args[0]\n\tdefault:\n\t\treturn 1, fmt.Errorf(\"Can only specify one directory to search in\")\n\t}\n\tdefault_cwd = utils.Expanduser(default_cwd)\n\tif default_cwd, err = filepath.Abs(default_cwd); err != nil {\n\t\treturn\n\t}\n\n\tlp.OnInitialize = func() (string, error) {\n\t\tif opts.WritePidTo != \"\" {\n\t\t\tif err := utils.AtomicWriteFile(opts.WritePidTo, bytes.NewReader([]byte(strconv.Itoa(os.Getpid()))), 0600); err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t}\n\t\tif opts.Title != \"\" {\n\t\t\tlp.SetWindowTitle(opts.Title)\n\t\t}\n\t\tlp.RequestCurrentColorScheme()\n\t\treturn handler.OnInitialize()\n\t}","sourceCodeStart":958,"sourceCodeEnd":994,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kittens/choose_files/main.go#L958-L994","documentation":"The choose-files kitten was given more than one positional directory argument; it accepts at most one starting directory (the second CLI argument to the kitten).","triggerScenarios":"Running kitty +kitten choose_files dir1 dir2 — args has length > 1.","commonSituations":"Passing multiple paths expecting a multi-root file picker; quoting bugs that split one path into several words.","solutions":["Pass a single directory only","Quote paths containing spaces: 'kitten choose_files \"my dir\"'","Implement multi-root behavior yourself via a wrapper that prompts sequentially"],"exampleFix":"# before\nkitty +kitten choose_files ~/docs ~/pics\n# after\nkitty +kitten choose_files ~/docs","handlingStrategy":"validation","validationCode":"if len(args) > 1 { fmt.Fprintln(os.Stderr, \"usage: choose_files [directory]\"); os.Exit(1) }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Quote directory arguments with spaces","Pass exactly zero or one directory"],"tags":["kitty","cli-args","choose-files"],"backgroundTag":"too-many-arguments","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}