{"id":18896860,"url":"https://github.com/shakibamoshiri/curly","last_synced_at":"2025-07-05T17:08:37.048Z","repository":{"id":128566840,"uuid":"275173100","full_name":"shakibamoshiri/curly","owner":"shakibamoshiri","description":"bash CLI for doing things in a 'curl' way ..","archived":false,"fork":false,"pushed_at":"2021-01-19T12:01:08.000Z","size":136,"stargazers_count":11,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T01:53:22.299Z","etag":null,"topics":["curl","dig","dns","email","ftp","http","ssl"],"latest_commit_sha":null,"homepage":"","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/shakibamoshiri.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":"2020-06-26T14:18:35.000Z","updated_at":"2024-12-09T20:38:56.000Z","dependencies_parsed_at":"2023-05-04T22:47:04.253Z","dependency_job_id":null,"html_url":"https://github.com/shakibamoshiri/curly","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakibamoshiri%2Fcurly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakibamoshiri%2Fcurly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakibamoshiri%2Fcurly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakibamoshiri%2Fcurly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shakibamoshiri","download_url":"https://codeload.github.com/shakibamoshiri/curly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248991540,"owners_count":21194894,"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":["curl","dig","dns","email","ftp","http","ssl"],"created_at":"2024-11-08T08:35:35.500Z","updated_at":"2025-04-15T01:53:27.825Z","avatar_url":"https://github.com/shakibamoshiri.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# curly\nSpeak `curl` for faster troubleshooting\n[docs](https://docs.shakiba.net/tools/curly);\n\n## what is it?\n**curly** is a bash CLI for faster and simpler troubleshooting.  \nThe workflow is based on **action** and **action-receiver**.  \n\n### action-receiver\nHere are some receivers  \n1. FTP\n2. SSL\n3. HTTP\n4. DNS\n5. IP\n6. Email \n\nand a receiver can deal with some actions e.g.  \n1. check, mount, etc (for FTP)\n2. valid, date, etc (for SSL)\n4. root, trace, etc (for DNS)\n\nThis type is design a scalable and later we can add more features to our app with minimum code manipulation.\n\n### Examples\nCheck the FTP connection\n```bash\n$ curly --ftp check --fc conf/dl.amozeshsabz.ir\ndrwx--x---   7 ftp      ftp          4096 Jul 26 14:06 .\ndrwx--x---   7 ftp      ftp          4096 Jul 26 14:06 ..\n-rw-r--r--   1 ftp      ftp            18 Apr  1  2020 .bash_logout\n-rw-r--r--   1 ftp      ftp           193 Apr  1  2020 .bash_profile\n-rw-r--r--   1 ftp      ftp           231 Apr  1  2020 .bashrc\ndrwx--x--x   3 ftp      ftp          4096 Jul 13 11:26 domains\ndrwxrwx---   3 ftp      ftp          4096 Jul 13 11:26 imap\ndrwxrwx---   2 ftp      ftp          4096 Jul 13 11:26 Maildir\ndrwxrwx---   2 ftp      ftp          4096 Nov  9 00:17 .php\nlrwxrwxrwx   1 ftp      ftp            42 Jul 13 11:26 public_html -\u003e ./domains/pz11313.parspack.net/public_html\n-rw-r-----   1 ftp      ftp            98 Jul 13 11:26 .shadow\n-rw-r--r--   1 ftp      ftp            26 Jul 13 15:09 test-file.txt\ndrwx------   2 ftp      ftp          4096 Jul 13 11:26 tmp\n\noption: ftp\naction: check\nstatus: OK\n```\n\ncheck SSL date \n```bash\n$ curly --ssl date -d shakiba.net\nVerify return code: 0 (ok)\nfrom: Mon Aug 10 00:00:00 UTC 2020\ntill: Tue Aug 10 12:00:00 UTC 2021\ndays total:  364\ndays passed: 92\ndays left:   272\n\noption: ssl\naction: date\nstatus: OK\n```\n\ncheck TTFB of a domain \n```bash\ncurly --http ttfb -d media.shakiba.net\nurl_effective       https://media.shakiba.net/\ntime_namelookupe    0.012499 | DNS lookup\ntime_connect        0.013454 | TCP connection\ntime_appconnect     0.049755 | App connection\ntime_redirect       0.005649 | Redirection time\ntime_starttransfer  0.057018 | TTFB\ntime_total          0.058207\n\noption: http\naction: ttfb\nstatus: OK\n```\n\ncheck records of a domain and its root DNS server\n```bash\ncurly --dns root -d derak.cloud\nDNS server A.NIC.CLOUD\n;derak.cloud.\t\t\tIN\tANY\nderak.cloud.\t\t3600\tIN\tNS\t4.top.derak.cloud.\nderak.cloud.\t\t3600\tIN\tNS\t1.top.derak.cloud.\nderak.cloud.\t\t3600\tIN\tNS\t2.top.derak.cloud.\nderak.cloud.\t\t3600\tIN\tNS\t3.top.derak.cloud.\n4.top.derak.cloud.\t3600\tIN\tA\t159.69.229.229\n3.top.derak.cloud.\t3600\tIN\tA\t178.62.222.218\n2.top.derak.cloud.\t3600\tIN\tA\t5.145.112.112\n1.top.derak.cloud.\t3600\tIN\tA\t5.145.115.115\n\noption: dns\naction: root\nstatus: OK\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakibamoshiri%2Fcurly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshakibamoshiri%2Fcurly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakibamoshiri%2Fcurly/lists"}