{"id":20337953,"url":"https://github.com/runsidekick/sidekick-agent-python","last_synced_at":"2025-04-11T22:52:58.106Z","repository":{"id":60479707,"uuid":"529293780","full_name":"runsidekick/sidekick-agent-python","owner":"runsidekick","description":"Python agent for Sidekick open-source live application debugger","archived":false,"fork":false,"pushed_at":"2023-02-01T07:22:07.000Z","size":167,"stargazers_count":15,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T22:52:49.135Z","etag":null,"topics":["debugging","debugging-tool","logging","monitoring"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/runsidekick.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}},"created_at":"2022-08-26T14:39:37.000Z","updated_at":"2024-10-17T17:32:04.000Z","dependencies_parsed_at":"2023-02-17T03:15:35.129Z","dependency_job_id":null,"html_url":"https://github.com/runsidekick/sidekick-agent-python","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runsidekick%2Fsidekick-agent-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runsidekick%2Fsidekick-agent-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runsidekick%2Fsidekick-agent-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runsidekick%2Fsidekick-agent-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runsidekick","download_url":"https://codeload.github.com/runsidekick/sidekick-agent-python/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492957,"owners_count":21113162,"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":["debugging","debugging-tool","logging","monitoring"],"created_at":"2024-11-14T21:11:00.169Z","updated_at":"2025-04-11T22:52:58.082Z","avatar_url":"https://github.com/runsidekick.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"30%\" height=\"30%\" src=\"https://4750167.fs1.hubspotusercontent-na1.net/hubfs/4750167/Sidekick%20OS%20repo/logo-1.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  Sidekick Python Agent\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/runsidekick/sidekick\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/license/runsidekick/sidekick?style=for-the-badge\" alt=\"Sidekick Licence\" /\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca href=\"https://www.runsidekick.com/discord-invitation?utm_source=sidekick-python-readme\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/discord/958745045308174416?style=for-the-badge\u0026logo=discord\u0026label=DISCORD\" alt=\"Sidekick Discord Channel\" /\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca href=\"https://www.runforesight.com?utm_source=sidekick-python-readme\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Monitored%20by-Foresight-%239900F0?style=for-the-badge\" alt=\"Foresight monitoring\" /\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca href=\"https://app.runsidekick.com/sandbox?utm_source=sidekick-python-readme\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/try%20in-sandbox-brightgreen?style=for-the-badge\" alt=\"Sidekick Sandbox\" /\u003e\u003c/a\u003e\u0026nbsp;\n    \n\u003c/p\u003e\n\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/runsidekick/sidekick\"\u003e\u003cstrong\u003eSidekick Main Repository »\u003c/strong\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#what-is-sidekick\"\u003eWhat is Sidekick?\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#sidekick-actions\"\u003eSidekick Actions\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#sidekick-python-agent\"\u003eSidekick Python Agent\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#build\"\u003eBuild the agent\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#official-sidekick-agents\"\u003eOfficial Sidekick Agents\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#resources\"\u003eResources\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#questions-problems-suggestions\"\u003eQuestions? Problems? Suggestions?\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## What is Sidekick?\nSidekick is a live application debugger that lets you troubleshoot your applications while they keep on running.\n\nAdd dynamic logs and put non-breaking breakpoints in your running application without the need of stopping \u0026 redeploying.\n\nSidekick Open Source is here to allow self-hosting and make live debugging more accessible. Built for everyone who needs extra information from their running applications. \n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"70%\" height=\"70%\" src=\"https://4750167.fs1.hubspotusercontent-na1.net/hubfs/4750167/Sidekick%20OS%20repo/HowSidekickWorks.gif\"\u003e\n\u003c/p\u003e\n\n\n##### Sidekick Actions:\nSidekick has two major actions; Tracepoints \u0026 Logpoints.\n\n- A **tracepoint** is a non-breaking remote breakpoint. In short, it takes a snapshot of the variables when the code hits that line.\n- **Logpoints** open the way for dynamic(on-demand) logging to Sidekick users. Replacing traditional logging with dynamic logging has the potential to lower stage sizes, costs, and time for log searching while adding the ability to add new logpoints without editing the source code, redeploying, or restarting the application.\n\nSupported runtimes: Java, Python, Node.js\n\nTo learn more about Sidekick features and capabilities, see our [web page.](https://www.runsidekick.com/?utm_source=sidekick-python-readme)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://app.runsidekick.com/sandbox?utm_source=github\u0026utm_medium=readme\" target=\"_blank\"\u003e\u003cimg width=\"345\" height=\"66\" src=\"https://4750167.fs1.hubspotusercontent-na1.net/hubfs/4750167/Sidekick%20OS%20repo/try(1)%201.png\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.runsidekick.com/discord-invitation?utm_source=sidekick-python-readme\" target=\"_blank\"\u003e\u003cimg width=\"40%\" height=\"40%\" src=\"https://4750167.fs1.hubspotusercontent-na1.net/hubfs/4750167/Sidekick%20OS%20repo/joindiscord.png\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://www.runsidekick.com/?utm_source=sidekick-python-readme\"\u003e\u003cstrong\u003eLearn More »\u003c/strong\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\n# Sidekick Python Agent\n\nSidekick Python agent allows you to inject tracepoints (non-breaking breakpoints) and logpoints dynamically to capture call stack snapshots (with variables) and add log messages on the fly without code modification, re-build and re-deploy. So it helps you, your team, and your organization to reduce MTTR (Minimum Time to Repair/Resolve).\n\nTo achieve this, Sidekick Python Agent makes use of [Google Python Cloud Debugger Agent's](https://github.com/GoogleCloudPlatform/cloud-debug-python) breakpoint implementations under the hood.\n\nThe advantage of Sidekick over classical APM solutions is that, Sidekick\n\n  - can debug and trace any location (your code base or 3rd party dependency) in your application, not just the external (DB, API, etc ...) calls like APM solutions\n  - has zero overhead when you don't have any tracepoint or logpoint but APMs have always\n  - doesn't produce too much garbage data because it collects data only at the certain points you specified as long as that point (tracepoint/logpoint) is active\n\n\n## Usage\n\nFollow the below steps to install Sidekick Agent Python to your application.\n\n- Install the latest Sidekick agent: ```pip install sidekick-agent-python```\n\nConfigure the agent via [exporting environment variables](https://docs.runsidekick.com/installation/installing-agents/python/installation#configure-by-environment-variables?utm_source=sidekick-python-readme) or [creating .env file](https://docs.runsidekick.com/installation/installing-agents/python/installation#configure-by-.env-file?utm_source=sidekick-python-readme) and load it in source code.\n\n\n[Docs](https://docs.runsidekick.com/installation/installing-agents/python?utm_source=sidekick-python-readme)\n\n**ARM64 \u0026 M1 support:** Currently ARM64 packages are not published to PyPI directory. They will be published soon and you can build the agent yourself to make use of it on an ARM machine.\n\n\n## Build\n\n##### Prerequisites\n- pipenv\n\nActivate pipenv with the following command and install dependencies mentioned in Pipfile.\n\n```\npipenv shell\n```\n```\npipenv install\n```\n\nBuild tracepointdebug.\n\nCheck if \"setup.cfg\" file is created or not\n\n```\n./build.sh\n```\n\nCheck if build directory is created or not. If it is not created, run the following command to generate the source and the distribution binary.\n\n```\n./build_tools/build_wheels.sh\n```\n\n## Debugging the agent\n\nTo debug Sidekick Python Agent, add \"build/lib.*/tracepointdebug\" by creating a soft link in the application directory and configure your app according to Sidekick docs. \nMake sure your project's Python version is the same with Sidekick Python Agent's version.\n\n\n##  Official Sidekick Agents\n\n- [Java](https://github.com/runsidekick/sidekick-agent-java)\n- [Node.js](https://github.com/runsidekick/sidekick-agent-nodejs)\n- [Python](https://github.com/runsidekick/sidekick-agent-python)\n\n## Resources:\n\n- [Documentation](https://docs.runsidekick.com/?utm_source=sidekick-python-readme)\n- [Community](https://github.com/runsidekick/sidekick/discussions)\n- [Discord](https://www.runsidekick.com/discord-invitation?utm_source=sidekick-python-readme)\n- [Contributing](https://github.com/runsidekick/sidekick/blob/master/CONTRIBUTING.md)\n- [Sidekick Main Repository](https://github.com/runsidekick/sidekick)\n\n## Questions? Problems? Suggestions?\n\nTo report a bug or request a feature, create a [GitHub Issue](https://github.com/runsidekick/sidekick-agent-python/issues). Please ensure someone else has not created an issue for the same topic.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Contact\n\n[Reach out on the Discord](https://www.runsidekick.com/discord-invitation?utm_source=sidekick-python-readme). A fellow community member or Sidekick engineer will be happy to help you out.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunsidekick%2Fsidekick-agent-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frunsidekick%2Fsidekick-agent-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunsidekick%2Fsidekick-agent-python/lists"}