{"id":50834854,"url":"https://github.com/jclem/get-old","last_synced_at":"2026-06-14T02:31:18.711Z","repository":{"id":318729713,"uuid":"1061258694","full_name":"jclem/get-old","owner":"jclem","description":"A CLI for making HTTP requests","archived":false,"fork":false,"pushed_at":"2025-11-22T16:16:29.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-22T06:30:15.356Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/jclem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-21T15:06:05.000Z","updated_at":"2026-02-21T19:48:46.000Z","dependencies_parsed_at":"2025-10-13T12:49:10.676Z","dependency_job_id":"b5d2e4b0-d123-4c0b-bb89-0064abf32d03","html_url":"https://github.com/jclem/get-old","commit_stats":null,"previous_names":["jclem/get"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jclem/get-old","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fget-old","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fget-old/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fget-old/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fget-old/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jclem","download_url":"https://codeload.github.com/jclem/get-old/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fget-old/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34307683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-14T02:31:18.134Z","updated_at":"2026-06-14T02:31:18.705Z","avatar_url":"https://github.com/jclem.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# get\n\nA friendly, flexible HTTP client for your terminal. `get` makes requests easier\nwith smart URL and method parsing, rich output (color, syntax highlighting,\noptional formatting), and a concise, script‑friendly interface.\n\n## Features\n\n- Smart URL handling (bare domains → HTTPS, ports → localhost)\n- Method inference (POST when a body is provided without `-X`)\n- Pretty printing and syntax highlighting (JSON auto‑formatted)\n- Toggleable headers/body/format/highlighting for clean scripts\n- Verbose mode prints the request; streaming for large responses\n\n## Installation\n\nEither download and install a release, or use [mise-en-place](https://mise.jdx.dev/dev-tools/backends/github.html).\n\n```shell\nmise use --global github:jclem/get\n```\n\n## Usage\n\n```text\nGet is a CLI tool for making HTTP requests with intelligent URL parsing, method handling, and rich output formatting.\n\nURL PARSING BEHAVIOR:\nThe tool automatically handles various URL formats to make requests more convenient:\n\n  • Port-only (e.g., \":8080\")     → http://localhost:8080\n  • localhost (e.g., \"localhost:3000\") → http://localhost:3000\n  • Full URLs (e.g., \"https://api.example.com\") → Used as-is\n  • Domain-only (e.g., \"example.com\") → https://example.com\n\nMETHOD PARSING:\nUse the -X or --method flag to specify the HTTP method.\nPOST will be used by default if a body is provided and no explicit method is set.\n\nOUTPUT FORMATTING:\nThe tool provides rich output formatting with syntax highlighting and structured display.\nUse the various output control flags to customize what is displayed and how it's formatted.\n\nSESSIONS:\nBy default, get persists a small subset of request headers (currently:\nAuthorization) between runs, keyed by a session name.\n\nThe default session name is the request host; use --session to override, or\n-S/--no-session to disable reading and writing.  Sessions are stored at\n${XDG_CONFIG_HOME}/get/sessions.json.\n\nUse -A/--save-all-headers to persist all request headers for this run.\n\nEXAMPLES:\n  # Basic GET request to a domain (defaults to HTTPS)\n  get example.com\n\n  # GET request to localhost on port 8080\n  get :8080\n\n  # POST request to an API endpoint\n  get -X POST api.example.com/users\n\n  # PUT request with full URL\n  get -X PUT https://api.example.com/users/123\n\n  # Request to localhost with explicit hostname\n  get localhost:3000/api/health\n\n  # HEAD request to check if resource exists\n  get -X HEAD https://example.com/file.txt\n\n  # Disable colors and headers for clean output\n  get -C -H api.example.com/data\n\n  # Stream a large response\n  get -s https://api.example.com/large-dataset\n\n  # Debug mode for troubleshooting\n  get -d -X POST api.example.com/upload\n\nUsage:\n  get \u003curl\u003e [request-options] [flags]\n  get [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  help        Help about any command\n  sessions    Manage sessions\n\nFlags:\n  -d, --debug               Debug mode\n      --form                Format the request body as a form, instead of JSON\n  -h, --help                help for get\n      --max-redirects int   Maximum redirects to follow (0 means no max) (default 10)\n  -X, --method string       The HTTP method to use (default \"GET\")\n  -B, --no-body             Do not print the response body\n  -C, --no-color            Do not use color in the output (NO_COLOR is also respected)\n  -F, --no-format           Do not format the request/response body\n  -H, --no-headers          Do not print the response headers\n  -L, --no-highlight        Do not highlight the request/response body\n  -R, --no-redirects        Do not follow redirects\n  -S, --no-session          Do not read or save the session\n  -A, --save-all-headers    Save all headers to the session\n      --session string      The name of the session to use\n  -s, --stream              Stream the response\n  -v, --verbose             Verbose mode (prints the request)\n\nUse \"get [command] --help\" for more information about a command.\n```\n\n## Examples\n\n- Add headers and query params:\n  - `get example.com \"Authorization:Bearer TOKEN\" \"q==search term\"`\n- JSON body (auto POST when body provided):\n  - `get api.example.com/users 'user:={\"name\":\"Jane\"}'`\n- Form body:\n  - `get --form -X POST api.example.com/login 'email=jane@example.com' 'password=secret'`\n- Disable color for scripts:\n  - `NO_COLOR=1 get -H -B example.com` or `get -C ...`\n\n## Sessions\n\n- What persists:\n  - By default, `get` persists a small subset of request headers between runs, keyed by session name (defaults to the request host).\n  - Currently whitelisted: `Authorization`.\n  - Use `-A` / `--save-all-headers` to persist all headers from the request for this run (useful for custom auth headers).\n- Where stored:\n  - `${XDG_CONFIG_HOME}/get/sessions.json` (a JSON file created if missing).\n- Control behavior:\n  - Disable sessions: `-S` / `--no-session`.\n  - Use a custom session name: `--session my-api` (useful when multiple hosts share credentials, or for staging vs prod).\n  - Save all headers: `-A` / `--save-all-headers`.\n- Header precedence:\n  - Headers you pass on the command line override persisted headers for the same request; repeated header inputs add additional values.\n\nExamples:\n\n- First request saves `Authorization` under the host session:\n  - `get api.example.com 'Authorization:Bearer \u003ctoken\u003e' /me`\n- Subsequent requests reuse it automatically:\n  - `get api.example.com /me`\n- Use a named session instead of the host:\n  - `get --session my-api api.example.com 'Authorization:Bearer \u003ctoken\u003e'`\n  - `get --session my-api api.example.com /me`\n- Save and reuse a custom header as well:\n  - `get -A api.example.com 'X-Env:staging' 'Authorization:Bearer \u003ctoken\u003e' /me`\n  - `get api.example.com /me` # uses both Authorization and X-Env from session\n- Skip session reads/writes entirely:\n  - `get -S api.example.com /me`\n\n## Development\n\nInstall [mise-env-place](https://mise.jdx.dev/)\n\n- Install dependencies: `mise install`\n- Run remaining setup: `mise bootstrap`\n- See available tasks: `mise tasks`\n- Run development loop: `mise watch build`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjclem%2Fget-old","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjclem%2Fget-old","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjclem%2Fget-old/lists"}