{"id":14998070,"url":"https://github.com/b3b/pythonhere","last_synced_at":"2025-10-30T07:30:15.542Z","repository":{"id":145004463,"uuid":"318754296","full_name":"b3b/pythonhere","owner":"b3b","description":"Interactive remote code execution app","archived":false,"fork":false,"pushed_at":"2021-02-14T21:39:51.000Z","size":407,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T07:11:15.286Z","etag":null,"topics":[],"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/b3b.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","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-12-05T09:58:00.000Z","updated_at":"2023-03-30T05:48:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"66e9e75c-926c-4e63-9c49-7dbc3215e815","html_url":"https://github.com/b3b/pythonhere","commit_stats":{"total_commits":71,"total_committers":1,"mean_commits":71.0,"dds":0.0,"last_synced_commit":"edd45b4f5087d63e1bf265ec6a7c6ade23580de3"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3b%2Fpythonhere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3b%2Fpythonhere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3b%2Fpythonhere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b3b%2Fpythonhere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b3b","download_url":"https://codeload.github.com/b3b/pythonhere/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238941562,"owners_count":19556006,"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":[],"created_at":"2024-09-24T17:34:01.673Z","updated_at":"2025-10-30T07:30:15.102Z","avatar_url":"https://github.com/b3b.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"PythonHere\n==========\n\n.. start-badges\n.. image:: https://img.shields.io/pypi/status/pythonhere\n    :target: https://pypi.python.org/pypi/pythonhere\n    :alt: Status\n.. image:: https://img.shields.io/pypi/v/pythonhere.svg\n    :target: https://pypi.python.org/pypi/pythonhere\n    :alt: Latest version on PyPi\n.. image:: https://img.shields.io/docker/v/herethere/pythonhere?color=%23FFD43B\u0026label=Docker%20Image\n   :target: https://hub.docker.com/r/herethere/pythonhere\n   :alt: Docker Image Version (latest by date)\n.. image:: https://img.shields.io/pypi/pyversions/pythonhere.svg\n    :target: https://pypi.python.org/pypi/pythonhere\n    :alt: Supported Python versions\n.. image:: https://github.com/b3b/pythonhere/workflows/ci/badge.svg?branch=master\n     :target: https://github.com/b3b/pythonhere/actions?workflow=CI\n     :alt: CI Status\n.. image:: https://codecov.io/github/b3b/pythonhere/coverage.svg?branch=master\n    :target: https://codecov.io/github/b3b/pythonhere?branch=master\n    :alt: Code coverage Status\n.. end-badges\n\n*Here* is the `Kivy \u003chttps://kivy.org\u003e`_ based app to run Python code from the `Jupyter \u003chttps://jupyter.org/\u003e`_ magic %there.\n\n- *Here* is a server part with the GUI interface. It could be Android, Raspberry Pi, some other remote device that being debugged.\n- And *%there* is a client - Jupyter magic command to run code interactively on remote device.\n\nThis app could serve as a Python Kivy playground, for dynamic code execution from the PC.\n\nProject documentation: https://herethere.me\n\n.. image:: https://raw.githubusercontent.com/b3b/pythonhere/master/docs/description.png\n  :alt: Project description\n\n\nInstall on Android\n------------------\n\nApp is available on `Google Play \u003chttps://play.google.com/store/apps/details?id=me.herethere.pythonhere\u003e`_.\n\nReady-to-use *PythonHere* APKs are available in the `Releases \u003chttps://github.com/b3b/pythonhere/releases\u003e`_ section.\n\nFor a list of installed Python packages, see: `buildozer.spec \u003c./buildozer.spec\u003e`_.\n\n\nQuick Start with Docker\n-----------------------\n\nDocker image is based on `Jupyter Docker Stacks \u003chttps://jupyter-docker-stacks.readthedocs.io/en/latest/\u003e`_, and includes installed *PythonHere* with usage examples.\n\nExample command to start the Docker container::\n\n    docker run \\\n           --rm \\\n           -p 8888:8888 \\\n           -v \"$(pwd)/work\":/home/jovyan/work \\\n           herethere/pythonhere:latest\n\n\nCommand will expose the Jupyter Notebook server on host port 8888. Jupyter logs appear in the terminal and include an URL to the notebook server: http://127.0.0.1:8888/?token=... . Visiting this URL in a browser loads the Jupyter Notebook dashboard page.\n\nFiles from the directory **work** inside container, will be available in the host directory with the same name: **work**.\n\n\nRun with Docker Compose\n-----------------------\n\nCommands to run with Docker Compose, in the source directory:::\n\n  cp docker-compose.yml.tmpl docker-compose.yml\n  docker-compose up\n\n\nRun locally\n-----------\n\nCommands to run locally::\n\n   pip install pythonhere jupyter\n   jupyter notebook\n\n\nBuild Android app\n-----------------\n\nTo build with `Buildozer \u003chttps://github.com/kivy/buildozer\u003e`_, run in the source directory::\n\n\n  buildozer android debug\n\n\n\nRelated resources\n-----------------\n\n* `Kivy Remote Shell \u003chttps://github.com/kivy/kivy-remote-shell\u003e`_ : Remote SSH+Python interactive shell application\n* `herethere \u003chttps://github.com/b3b/herethere\u003e`_ : Library for interactive code execution, based on AsyncSSH\n* `AsyncSSH \u003chttps://github.com/ronf/asyncssh\u003e`_ : Asynchronous SSH for Python\n* `Buildozer action \u003chttps://github.com/ArtemSBulgakov/buildozer-action\u003e`_ : GitHub action that is used to build Android APK with Buildozer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb3b%2Fpythonhere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb3b%2Fpythonhere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb3b%2Fpythonhere/lists"}