{"id":33185672,"url":"https://github.com/talis-fb/TReq","last_synced_at":"2025-11-22T04:01:32.717Z","repository":{"id":210289907,"uuid":"724183950","full_name":"talis-fb/TReq","owner":"talis-fb","description":"A CLI tool for effortless HTTP requests","archived":false,"fork":false,"pushed_at":"2024-10-28T17:31:09.000Z","size":389,"stargazers_count":62,"open_issues_count":17,"forks_count":2,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-10-20T23:36:05.500Z","etag":null,"topics":["api","api-rest","cli","cli-app","curl","http","http-client","httpie","rust","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/talis-fb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2023-11-27T15:07:14.000Z","updated_at":"2025-10-10T17:39:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c90e96f-031c-4f28-8206-a5114543d49e","html_url":"https://github.com/talis-fb/TReq","commit_stats":{"total_commits":245,"total_committers":3,"mean_commits":81.66666666666667,"dds":0.4,"last_synced_commit":"fb0c97460c70080676b8b19d05561b4df40aeaef"},"previous_names":["talis-fb/treq1.0","talis-fb/treq"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/talis-fb/TReq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talis-fb%2FTReq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talis-fb%2FTReq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talis-fb%2FTReq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talis-fb%2FTReq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/talis-fb","download_url":"https://codeload.github.com/talis-fb/TReq/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talis-fb%2FTReq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285731803,"owners_count":27222214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-22T02:00:05.934Z","response_time":64,"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":["api","api-rest","cli","cli-app","curl","http","http-client","httpie","rust","terminal"],"created_at":"2025-11-16T05:00:20.098Z","updated_at":"2025-11-22T04:01:32.711Z","avatar_url":"https://github.com/talis-fb.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://res.cloudinary.com/dfjn94vg8/image/upload/v1706297059/TReq/dino_png.png\" height=\"250px\" /\u003e\n\u003c/p\u003e\n\n# TReq\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/talis-fb/TReq/ci.yaml)\n![GitHub repo size](https://img.shields.io/github/repo-size/talis-fb/treq)\n\n\n\nA \u003cb\u003eT\u003c/b\u003eerminal \u003cb\u003eReq\u003c/b\u003euest HTTP Client.\nTReq is a user-friendly Command Line Interface (CLI) HTTP client, designed to be simple and a complete CLI tool to interact with APIs. With options to save and edit frequently used requests with simple commands to run them again later. Imagine a workflow like GUI tools for HTTP requests in terminal.\n\n\n![demo](https://res.cloudinary.com/dfjn94vg8/image/upload/v1708910958/TReq/demo-treq2_lite_iyqag6.gif)\n\n\n## Features\n* \u003cb\u003eMade to APIs and REST\u003c/b\u003e: TReq is tailored for working with APIs, REST, and JSON with minimal effort.\n* \u003cb\u003e[HTTPie](https://httpie.io/) based\u003c/b\u003e: The CLI interface is entirely based on HTTPie, and seeks to implement and extend its main features (a superset of HTTPie's).\n* \u003cb\u003ePersistent Request Storage\u003c/b\u003e: Save and edit frequently used requests with simple commands to run them again later. Imagine a workflow like GUI tools for HTTP requests in terminal.\n* \u003cb\u003ePretty Outputs\u003c/b\u003e: The UX is relevant in a CLI.\n\n## Examples\n\nBasic requests\n```sh\ntreq GET example.com/users/id?name=John\ntreq POST example.com\n```\n\nPOST with custom header and json payload\n```sh\ntreq POST example.com X-API-Token:123 name=John food=pizza\n```\n\nSubmit and saving the request locally as \"*main-endpoint*\" with `--save-as` flag\n```sh\ntreq POST example.com name=\"John Doe\" --save-as main-endpoint\n```\nExecuting saved request with `run` command\n```sh\ntreq run main-endpoint\n```\n\nExecuting it adding more data \n```sh\ntreq run main-endpoint email='john@gmail.com' job=dev\n```\n\nA pratical usage...\n```sh\n# Create a user and save the request for make it again later\ntreq POST api.com/user name=John job=dev friends:='[\"Bob\", \"Jane\"]' birth-year:=1990 --save-as create-user\n\n# Make the same request for create a user \"Jane\"\ntreq run create-user name=Jane birth-year:=2001\n\n# Editing saved request\ntreq edit birth-year:=2002 --method PATCH\n```\n\n## Installation\n\n- [1. Ubuntu / Debian based](#ubuntu--debian-based)\n- [2. Arch / Manjaro](#arch--manjaro)\n- [3. Cargo](#cargo)\n- [4. Linux generic](#linux-generic)\n- [5. Windows](#windows)\n\n### Ubuntu / Debian based\nDownload the latest `.deb` package from the [last release page](https://github.com/talis-fb/TReq/releases/latest). Open your terminal and navigate to the directory where the downloaded `.deb` file is located. Install TReq using the following command:\n\n```sh\nsudo dpkg -i treq-x.x.x_amd64.deb\n```\nAlternatively, you can try:\n```sh\nsudo apt install ./treq-x.x.x_amd64.deb\n```\n\n### Arch / Manjaro\nIf you're using Arch Linux, you can install TReq from the AUR using an AUR helper such as [yay](https://github.com/Jguer/yay):\n\n```sh\nyay -S treq-bin\n```\n\n### Cargo\nFor any OS, the best way to install TReq is using `cargo`.\n\nInstall cargo using [rustup](https://rustup.rs/) and then...\n\n```sh\ncargo install treq\n```\n\n### Linux generic\nTReq's binary is statically linked and has no dependencies, making it compatible with most major Linux distributions. To install, download the binary from the latest release page and place it in your PATH directory.\n\nUsing Curl\n```sh\ncurl -fLo /usr/local/bin/treq --create-dirs https://github.com/talis-fb/TReq/releases/latest/download/treq.bin\nchmod +x /usr/local/bin/treq\n```\n\nUsing wget\n```sh\nwget -O /usr/local/bin/treq https://github.com/talis-fb/TReq/releases/latest/download/treq.bin\nchmod +x /usr/local/bin/treq\n```\n\n\n### Windows\nDownload the latest `.exe` file at [last release page](https://github.com/talis-fb/TReq/releases/latest). Place the downloaded .exe file in a directory included in your system's PATH, or add the directory containing the .exe to your PATH.\n\n## Usage\nFor more detailed information on commands and options, refer to the built-in help:\n```sh\ntreq --help\n```\n\nTReq uses HTTPie's request-item syntax to set headers, request body, query string, etc.\n- `=/:=` for setting the request body's JSON or form fields (= for strings and := for other JSON types).\n- ``==`` for adding query strings.\n- `:` for adding or removing headers e.g connection:keep-alive or connection:.\n\n\n### Body, header e params manipulation\n```sh\n# POST with JSON payload =\u003e { \"language\": \"Rust\", \"food\": \"pizza\" }\ntreq POST example.com language=Rust food=pizza\n\n\n# POST with custom Header =\u003e { Content-Type: application/json }\ntreq POST example.com Content-Type:application/json\n\n\n# Define query params at url \n#  (these two below are equivalent)\ntreq example.com?name=John\u0026job=dev\ntreq example.com name==John job==dev\n```\n\nMore complex requests\n```sh\n# POST with JSON payload \n#  =\u003e { \n#    \"friends\": [\"John\", \"Jane\"], \n#    \"job\": \"dev\",\n#    food\": \"pizza\" \n#  }\n\n#  (these three below are equivalent)\ntreq POST example.com?sort=true --raw '{ \"friends\": [\"John\", \"Jane\"] }' job=dev food=pizza\n\ntreq POST example.com?sort=true --raw friends:='[\"John\", \"Jane\"]' job=dev food=pizza\n\ntreq POST example.com sort==true --raw friends:='[\"John\", \"Jane\"]' job=dev food=pizza\n```\n\n### Localhost alias\nWhen defining urls with localhost, you can use the alias `:{PORT}/{ROUTES}` instead of complete url. \n\nFor example, each pair of the commands below are equivalents...\n```sh\ntreq GET localhost:8000\ntreq GET :8000\n\n\ntreq GET localhost:80/users \ntreq GET :80/users\n\n\ntreq run my-request --url localhost:9000\ntreq run my-request --url :9000\n```\n\n\n\n\n## Contributing\nContributions and feature requests are welcome! Feel free to submit issues or pull requests on our [GitHub repository](https://github.com/talis-fb/TReq).\n\n## Upcoming features\n- [ ] TUI view like https://github.com/talis-fb/legacy_treq\n- [ ] Enviroment Variables in Request payloads (like {{ .env.ENV_NAME }})\n\n","funding_links":[],"categories":["\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalis-fb%2FTReq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftalis-fb%2FTReq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalis-fb%2FTReq/lists"}