{"id":13642558,"url":"https://github.com/alexdlaird/hookee","last_synced_at":"2025-08-08T12:12:09.084Z","repository":{"id":54221363,"uuid":"284149402","full_name":"alexdlaird/hookee","owner":"alexdlaird","description":"Command line webhooks, on demand","archived":false,"fork":false,"pushed_at":"2025-07-10T12:23:50.000Z","size":371,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-10T18:08:15.622Z","etag":null,"topics":["cli","education","flask","ngrok","plugins","python","requests","server","webhook"],"latest_commit_sha":null,"homepage":"https://hookee.readthedocs.io","language":"Python","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/alexdlaird.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"alexdlaird","patreon":"alexdlaird","custom":["https://www.paypal.me/alexdlaird"]}},"created_at":"2020-07-31T23:37:11.000Z","updated_at":"2025-07-10T12:23:42.000Z","dependencies_parsed_at":"2023-01-24T18:01:38.781Z","dependency_job_id":"208051ea-9c50-454d-bcea-953bb528b47c","html_url":"https://github.com/alexdlaird/hookee","commit_stats":{"total_commits":179,"total_committers":3,"mean_commits":"59.666666666666664","dds":"0.15642458100558654","last_synced_commit":"df6a025026b78f68f5fca7fbc096b86f33b01774"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/alexdlaird/hookee","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdlaird%2Fhookee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdlaird%2Fhookee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdlaird%2Fhookee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdlaird%2Fhookee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexdlaird","download_url":"https://codeload.github.com/alexdlaird/hookee/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdlaird%2Fhookee/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269417622,"owners_count":24413403,"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-08-08T02:00:09.200Z","response_time":72,"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":["cli","education","flask","ngrok","plugins","python","requests","server","webhook"],"created_at":"2024-08-02T01:01:33.089Z","updated_at":"2025-08-08T12:12:09.070Z","avatar_url":"https://github.com/alexdlaird.png","language":"Python","funding_links":["https://github.com/sponsors/alexdlaird","https://patreon.com/alexdlaird","https://www.paypal.me/alexdlaird"],"categories":["Python","Development Tools"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg alt=\"hookee - command line webhooks, on demand\" src=\"https://hookee.readthedocs.io/en/latest/_images/logo.png\" /\u003e\u003c/p\u003e\n\n[![Version](https://img.shields.io/pypi/v/hookee)](https://pypi.org/project/hookee)\n[![Python Versions](https://img.shields.io/pypi/pyversions/hookee.svg)](https://pypi.org/project/hookee/)\n[![Coverage](https://img.shields.io/codecov/c/github/alexdlaird/hookee)](https://codecov.io/gh/alexdlaird/hookee)\n[![Build](https://img.shields.io/github/actions/workflow/status/alexdlaird/hookee/build.yml)](https://github.com/alexdlaird/hookee/actions/workflows/build.yml)\n[![Docs](https://img.shields.io/readthedocs/hookee)](https://hookee.readthedocs.io/en/latest)\n[![GitHub License](https://img.shields.io/github/license/alexdlaird/hookee)](https://github.com/alexdlaird/hookee/blob/main/LICENSE)\n\n`hookee` is a utility that provides command line webhooks, on demand! Dump useful request data to the\nconsole, process requests and responses, customize response data, and configure `hookee` and its routes\nfurther in any number of ways through custom plugins.\n\n## Installation\n\n`hookee` is available on [PyPI](https://pypi.org/project/hookee/) and can be installed\nusing `pip`:\n\n```sh\npip install hookee\n```\n\nor `conda`:\n\n```sh\nconda install -c conda-forge hookee\n```\n\nThat's it! `hookee` is now available as a Python package and is available from the command line.\n\n### Configure `authtoken`\n\nTo get the most out of `hookee`, you'll want to obtain an [authtoken from `ngrok`](https://dashboard.ngrok.com/) (it's\nfree!) and install it in to `hookee`'s config file:\n\n```sh\nhookee authtoken $NGROK_AUTHTOKEN\n```\n\n## Basic Usage\n\n`hookee` makes it easy to get webhooks on the fly right from the console. Simply start it with:\n\n```sh\nhookee start\n```\n\nWith its default configuration, this will start a server on port 8000, open a [`ngrok`](https://ngrok.com/) tunnel\nusing [`pyngrok`](https://pyngrok.readthedocs.io/en/latest/), and mount a URL at `/webhook`. Sending any request to\nthe `/webhook` endpoint will dump the request and response data to the console.\n\n`hookee` can be configured in a number of ways to quickly and easily tweak request and response data. For example,\nhere is how you can customize the response body from `/webhook` using the `--response` arg.\n\n```sh\nhookee --response \"\u003cResponse\u003eOk\u003c/Response\u003e\" \\\n    --content-type application/xml\n```\n\n`hookee` can also be started without a tunnel (removing the dependency on `ngrok` and an Internet connection). Using\nthe `--no-tunnel` flag only starts `hookee`'s server, allowing responses to be mocked locally. This can be particularly\nuseful when service discovery is done through a proxy service (ex. [HAProxy](https://www.haproxy.org/),\n[Envoy](https://www.envoyproxy.io/), etc.), meaning you can tell `hookee` to start on the port of an expected downstream,\nthus intercepting requests to that service to provide your own responses in an isolated environment, very useful for\nrapid local development, cluster testing, and more.\n\n```sh\nhookee --no-tunnel --response \"\u003cResponse\u003eOk\u003c/Response\u003e\" \\\n    --content-type application/xml \\\n    --default-route /some/route \\\n    --port 19780\n```\n\nTo see the ways `hookee` can be tweaked right from the console, view its documented args and commands like this:\n\n```sh\nhookee --help\n```\n\n## Documentation\n\nFor more advanced usage, including how `hookee`'s default configuration can be changed, extended through plugins,\nAPI integrations, and more, see its official documentation is available\nat [Read the Docs](http://hookee.readthedocs.io).\n\n## Contributing\n\nIf you would like to get involved, be sure to review\nthe [Contribution Guide](https://github.com/alexdlaird/hookee/blob/main/CONTRIBUTING.rst).\n\nWant to contribute financially? If you've found `hookee` useful, [sponsorship](https://github.com/sponsors/alexdlaird)\nwould\nalso be greatly appreciated!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdlaird%2Fhookee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexdlaird%2Fhookee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdlaird%2Fhookee/lists"}