{"id":28089317,"url":"https://github.com/nalmeida/urltracker","last_synced_at":"2025-09-17T19:32:40.896Z","repository":{"id":287273448,"uuid":"964190156","full_name":"nalmeida/urltracker","owner":"nalmeida","description":"A command-line tool to check HTTP status codes and track redirections for URLs.","archived":false,"fork":false,"pushed_at":"2025-04-30T20:41:16.000Z","size":309,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-30T21:36:51.282Z","etag":null,"topics":["cli","curl","http","httpx"],"latest_commit_sha":null,"homepage":"https://nalmeida.github.io/urltracker/","language":"Shell","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/nalmeida.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,"zenodo":null}},"created_at":"2025-04-10T20:35:17.000Z","updated_at":"2025-04-30T20:41:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7213cc9-62b4-4056-b751-25a64785c641","html_url":"https://github.com/nalmeida/urltracker","commit_stats":null,"previous_names":["nalmeida/urltracker"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalmeida%2Furltracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalmeida%2Furltracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalmeida%2Furltracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nalmeida%2Furltracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nalmeida","download_url":"https://codeload.github.com/nalmeida/urltracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253948336,"owners_count":21988953,"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","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":["cli","curl","http","httpx"],"created_at":"2025-05-13T12:56:20.111Z","updated_at":"2025-09-17T19:32:40.890Z","avatar_url":"https://github.com/nalmeida.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URL Tracker\n\n![urltracker demo](docs/demo/demo.gif)\n\n\u003e A command-line tool to check HTTP status codes and track redirects.\n\nGithub repo: [https://github.com/nalmeida/urltracker](https://github.com/nalmeida/urltracker)\n\n## Overview\n\nURL Tracker helps you analyze HTTP responses and redirects for single URLs or lists of URLs. Perfect for website maintenance, SEO auditing, and link checking.\n\n### Features:\n\n- Single URL status checking\n- Batch URL processing from a txt file\n- Redirect chain tracking\n- CSV output for further analysis\n- Basic authentication support\n- Custom headers and cookies\n\n\u003e Since `v2.0.0` urltracker sends `GET` as default request method as some servers were returning `404` status instead of `200`.\n\n\u003e Since `v1.2.0` urltracker sends a custom header `User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3` instead of original `User-Agent: curl/7.54.1` to better emulate browser behaviour.\n\n## Requirements\n\n- Bash shell environment\n- `curl` command-line tool\n- `BATS` (Bash Automated Testing System) for running tests\n\n## Installation\n\n### Via Homebrew\n\n```bash\nbrew tap nalmeida/urltracker\nbrew install urltracker\n```\n\n\u003e [!NOTE]\n\u003e [URL Tracker Homebrew Formula](https://github.com/nalmeida/homebrew-urltracker)\n\n### Via git clone \n\n1. Clone this repository:\n```bash\ngit clone https://github.com/nalmeida/urltracker.git\ncd urltracker\n```\n\n2. Make the script executable:\n```bash\nchmod +x urltracker\n```\n\n3. (Optional) Create a symlink to use it from anywhere:\n```bash\nsudo ln -s $(pwd)/urltracker /usr/local/bin/urltracker\n```\n\n## Usage\n\n### Basic URL Check\n\n```bash\nurltracker https://httpbin.org/status/200\n```\n\n### Process a List of URLs\n\nCreate a text file with one URL per line (e.g.: `urls.txt`):\n```\nhttps://httpbin.org/status/200\nhttps://httpbin.org/redirect/2\nhttps://httpbin.org/status/404\n```\n\nThen run:\n```bash\nurltracker --list urls.txt\n```\n\n### Output to CSV\n\n```bash\nurltracker --list urls.txt --output results.csv\n```\n\n### Using Authentication\n\n```bash\nurltracker --auth user:pass https://httpbin.org/basic-auth/user/pass\n```\n\n### Using Custom Headers\n\n```bash\nurltracker --header \"User-Agent: Mozilla/5.0\" --header \"Accept-Language: en-US\" https://httpbin.org/status/200\n```\n\n### Using Custom Method\n\n```bash\nurltracker --method PATCH https://httpbin.org/anything  --verbose\n```\n\n### Verbose Output\n\n```bash\nurltracker https://httpbin.org/redirect/2 --verbose\n```\n\n### Full Options List\n\n```\nUsage: urltracker [OPTIONS] [URL]\n\nOptions:\n  -h, --help                   Display this help message\n  -V, --version                Display the version\n  -l, --list \u003cfile\u003e            Process a list of URLs from a text file\n  -o, --output \u003cfile\u003e          Export results to a CSV file\n  -v, --verbose                Verbose mode: show all redirect URLs\n  -q, --quiet                  Quiet mode: no output to console\n  -nc, --no-color              Disable colored output\n  -m, --method \u003cmethod\u003e HTTP method to use (default: GET. HEAD is faster but some servers may block it)\n  -a, --auth \u003cuser:password\u003e   Use HTTP Basic Authentication\n  -H, --header \u003cheader\u003e        Add custom header (can be used multiple times)\n  -c, --cookie \u003cname=value\u003e    Add a cookie (can be used multiple times)\n```\n\n## Development\n\n### Running Tests\n\nThis project uses [BATS](https://github.com/bats-core/bats-core) (Bash Automated Testing System) for testing. To run the tests:\n\n1. Install BATS if you don't have it:\n```bash\n# MacOS\nbrew install bats-core\n\n# Debian/Ubuntu\nsudo apt-get install bats\n```\n\n2. Run the tests:\n```bash\nbats test_urltracker.bats\n```\n\n3. For verbose test output:\n```bash\nbats --tap test_urltracker.bats\n```\n\n4. For debug test output:\n```bash\nbats --print-output-on-failure --show-output-of-passing-tests test_urltracker.bats\n```\n\n### Test Coverage\n\nThe test suite covers:\n- Basic functionality\n- URL list processing\n- Output formatting\n- Error handling\n- Authentication and custom headers\n- Command-line option parsing\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes and add tests for new functionality\n4. Run the test suite to ensure everything passes (`bats test_urltracker.bats`)\n5. Commit your changes (`git commit -am 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Create a new Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgments\n\n- The [BATS project](https://github.com/bats-core/bats-core) for the testing framework\n- The command `curl -IL https://httpbin.org/redirect/2` that led me to create this project\n- The amazing [httpx](https://github.com/projectdiscovery/httpx) as inspiration and a powerful alternative to this humble project\n- The amazing [vhs](https://github.com/charmbracelet/vhs) CLI demo generator","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnalmeida%2Furltracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnalmeida%2Furltracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnalmeida%2Furltracker/lists"}