{"id":25737013,"url":"https://github.com/richstokes/python-objectviewer","last_synced_at":"2025-11-20T06:04:32.390Z","repository":{"id":277892277,"uuid":"933837290","full_name":"richstokes/python-objectviewer","owner":"richstokes","description":"Easily inspect/visualize objects and variables in your running python code in real time.","archived":false,"fork":false,"pushed_at":"2025-02-22T20:25:27.000Z","size":247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T06:35:28.470Z","etag":null,"topics":["debugging","hyperdiv","python","python-debugger","python-development","python-tools"],"latest_commit_sha":null,"homepage":"","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/richstokes.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":"2025-02-16T19:51:39.000Z","updated_at":"2025-02-22T20:25:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"8019bb48-8363-4526-9658-b811bf14b763","html_url":"https://github.com/richstokes/python-objectviewer","commit_stats":null,"previous_names":["richstokes/python-objectviewer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/richstokes/python-objectviewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richstokes%2Fpython-objectviewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richstokes%2Fpython-objectviewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richstokes%2Fpython-objectviewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richstokes%2Fpython-objectviewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richstokes","download_url":"https://codeload.github.com/richstokes/python-objectviewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richstokes%2Fpython-objectviewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285382193,"owners_count":27162159,"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-20T02:00:05.334Z","response_time":54,"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":["debugging","hyperdiv","python","python-debugger","python-development","python-tools"],"created_at":"2025-02-26T06:32:30.383Z","updated_at":"2025-11-20T06:04:32.384Z","avatar_url":"https://github.com/richstokes.png","language":"Python","readme":"Debugging tool thats lets you easily inspect/visualize objects and variables in your running python code as a tree view.  \n\nIt uses the Debug Adapter Protocol (DAP) to retrieve the objects in your running python program. It then displays them in a web app.  \n\nEvery time you refresh the page, it briefly pauses your running code and displays a snapshot of its current state.  \n\n\n\n#### Screenshot\n![Screenshot](screenshot.png)\n\n\n## Setup\nOn the project you wish to debug, install [debugpy](https://github.com/microsoft/debugpy):  \n`pipenv install debugpy`\n\n\n\n### Start debugpy server\nFrom the project you with to debug:\n```\npipenv run python -m debugpy --listen localhost:5678 your-script.py\n```\n\n### Run python-objectviewer\nIn another terminal, clone this repo and run:\n`HD_PORT=9000 pipenv run python pov.py`\n\nThen open your browser at [http://localhost:9000](http://localhost:9000)\n\n\u0026nbsp; \n\n## Notes\nBy default this will grab the variables of the running program at the time you load/reload the python-objectviewer page. I like this for long-running programs / those that are running in an infinite loop; a quick refresh of this tool and it'll snapshot the current state without needing any modifications of the target program. \n\nIf you want to capture the state more precisely you can do something like this in your target program:\n\n```python\n# At the start of your program\ndebugpy.wait_for_client()\n\n# At the point in the code you want to capture\ndebugpy.breakpoint()\n```\n\nThe code will then pause at the breakpoint until this tool connects and takes a snapshot of its current state. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichstokes%2Fpython-objectviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichstokes%2Fpython-objectviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichstokes%2Fpython-objectviewer/lists"}