{"id":18596527,"url":"https://github.com/nesto-software/s3-browser-cli","last_synced_at":"2026-05-13T23:32:41.982Z","repository":{"id":230264109,"uuid":"778791455","full_name":"nesto-software/s3-browser-cli","owner":"nesto-software","description":"A nix package for interactive s3 browsing on the cli","archived":false,"fork":false,"pushed_at":"2024-04-10T12:52:56.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-24T05:41:59.533Z","etag":null,"topics":["aws","browser","cli","s3","tool"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nesto-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-28T12:13:27.000Z","updated_at":"2024-04-01T08:57:43.000Z","dependencies_parsed_at":"2024-04-10T14:01:33.441Z","dependency_job_id":null,"html_url":"https://github.com/nesto-software/s3-browser-cli","commit_stats":null,"previous_names":["nesto-software/s3-browser-cli"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nesto-software/s3-browser-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesto-software%2Fs3-browser-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesto-software%2Fs3-browser-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesto-software%2Fs3-browser-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesto-software%2Fs3-browser-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nesto-software","download_url":"https://codeload.github.com/nesto-software/s3-browser-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesto-software%2Fs3-browser-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33004209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","browser","cli","s3","tool"],"created_at":"2024-11-07T01:24:44.161Z","updated_at":"2026-05-13T23:32:41.941Z","avatar_url":"https://github.com/nesto-software.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# S3 Browser CLI\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"100%\" src=\"./assets/sample.svg\"\u003e\n\u003c/p\u003e\n\nA command-line utility to select S3 keys interactively.\n\nThis tool best suits cases in which you want to interactively select an s3 key in your shell script.\nAs we currently do not support to search files at a specific directory level, this tool is only usable if you have a limited number of keys per directory level.\nThis is e.g. the case if you upload one file per day to your bucket and structure its s3 key as follows: `\u003cyear\u003e/\u003cmonth\u003e/\u003cday\u003e/\u003cupload-timestamp\u003e.zip`.\n\nWe wrote this cli tool as there is a lack of comparable tools in the open-source space.\nOur research considered the following similar tools:\n\n- pypi: [s3-browser](https://pypi.org/project/s3-browser/)\n\n## Installation\n\n### NPM\n\n`npx s3-browser-cli`\n\n### Nix\n\n`nix profile install github:nesto-software/s3-browser-cli`\n\nBuilds are cached on *nesto* cachix with the following pubkey:   \n`nesto.cachix.org-1:lIoJWOEaqqvUmcSzncCwRntE9HP7NopO1Q5HdtN7Jr8=`\n\nPackage is also distributed on [NUR](https://nur.nix-community.org/repos/mloeper/).\n\n## Synopsis\n\n`s3select [options]`\n\nNote: You must be logged-in to an AWS account on the CLI. That is, the AWS-SDK built into this tool must be able to locate credentials either via config file or env vars.\n\n### Options\n\n- `--bucket \u003cbucket-name\u003e`: A bucket to pre-select. When specifying the bucket parameter with the name of a valid S3 account owned by your AWS account, the inquirer-s3 module will start to browse at the root of this bucket.\n- `--objectPrefix \u003ckey\u003e`: An S3 object prefix indicating where you'd like to start the browsing inside a bucket.\n- `--enableFolderSelect`: If set, the user is allowed to select an S3 *folder* prefix as a valid result, default false.\n- `--enableFileObjectSelect`: If set, the user is allowed to select an S3 object (*files*) as a valid result, default true.\n- `--enableOtherBuckets`: If set, the user should be allowed to navigate to buckets other than the bucket parameter specified, default true.\n\nNote: It is invalid to pass an *objectPrefix* without specifying a valid bucket.   \nNote: The *objectPrefix* must be a *folder*, i.e. a key's prefix not the full object's key.\n\n## Output Format\n\n```json\n{ \n    \"bucket\": \"acme-bucket\",\n    \"prefix\":\"09036d7c13ed8e39d23d5552b0f46fb5125764f2df8c85fd313873931631ceff.zip\",\n    \"objectUrl\":\"https://s3.amazonaws.com/acme-bucket/09036d7c13ed8e39d23d5552b0f46fb5125764f2df8c85fd313873931631ceff.zip\",\n    \"s3Uri\":\"s3://acme-bucket/09036d7c13ed8e39d23d5552b0f46fb5125764f2df8c85fd313873931631ceff.zip\"\n}\n```\n\n## Shell Script Usage Example\n\nWe developed this tool to facilitate interactive s3 key selection into a shell variable. You could run e.g. `aws s3 cp ${SELECTED_S3_KEY_URI} \u003cpath\u003e` subsequently to download the selected file. Use the following code snippet to read the user input into a shell variable:\n\n```bash\nTMP_FILE=$(mktemp)\ns3select --redirect 3\u003e$TMP_FILE\n\nSELECTED_S3_KEY_URI=$(cat $TMP_FILE | jq -r '.s3Uri')\n```\n\nNote: When using the `--redirect` option, you have to pass the file descriptor 3 to the s3select binary. This might not work if you call the binary via a wrapper like `npm run` or `pnpm exec`. Call the utility in *node_modules/.bin` instead.\n\n**Why is getting the output so difficult?**\n\nThis tool uses *inquirer-s3* under the hood which depends on an old version of *inquirer*.\nIn new versions of inquirer, there is a [fix](https://github.com/pnp/cli-microsoft365/issues/5489) to this problem and inquirer uses stderr insted of stdout.\nWe work around this limitation by using our custom file description with number 3.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesto-software%2Fs3-browser-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnesto-software%2Fs3-browser-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesto-software%2Fs3-browser-cli/lists"}