{"id":41949368,"url":"https://github.com/dszlucha/cpremote","last_synced_at":"2026-01-25T20:11:28.881Z","repository":{"id":258623878,"uuid":"875042502","full_name":"dszlucha/cpremote","owner":"dszlucha","description":"cpremote is a command line tool for interacting with a CircuitPython remote filesystem","archived":false,"fork":false,"pushed_at":"2024-10-19T18:19:36.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-07T02:23:15.804Z","etag":null,"topics":["circuitpython"],"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/dszlucha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-10-19T00:48:41.000Z","updated_at":"2024-10-20T00:23:37.000Z","dependencies_parsed_at":"2024-10-19T22:21:41.956Z","dependency_job_id":null,"html_url":"https://github.com/dszlucha/cpremote","commit_stats":null,"previous_names":["dszlucha/cpremote"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dszlucha/cpremote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dszlucha%2Fcpremote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dszlucha%2Fcpremote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dszlucha%2Fcpremote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dszlucha%2Fcpremote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dszlucha","download_url":"https://codeload.github.com/dszlucha/cpremote/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dszlucha%2Fcpremote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28757714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T16:32:25.380Z","status":"ssl_error","status_checked_at":"2026-01-25T16:32:09.189Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["circuitpython"],"created_at":"2026-01-25T20:11:28.389Z","updated_at":"2026-01-25T20:11:28.866Z","avatar_url":"https://github.com/dszlucha.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cpremote\ncpremote is a command line tool for interacting with a CircuitPython remote filesystem using the web based workflow\n\n# description\nThis command line tool implements the CircuitPython [web based workflow](https://docs.circuitpython.org/en/latest/docs/workflows.html#web) and is great for\n* CircuitPython boards that do not support native USB\n* CircuitPython boards that are remote\n* Workflows in which a CircuitPython project is kept external from the CircuitPython board such as on a host computer\n\nI use `cpremote`, [`circup`](https://github.com/adafruit/circup) and [`CircuitPython for Visual Studio Code`](https://marketplace.visualstudio.com/items?itemName=joedevivo.vscode-circuitpython)with all of my CircuitPython projects.\n\n# install\n```sh\npip install cpremote\n```\n\n# environment variables\ncpremote will look for a `.env` file in the current directory which can contain the CircuitPython host name, password and/or file size units use with `ls`\n```sh\n# IP address recommended for better performance\nCPREMOTE_HOST=http://192.168.1.90\n# remote password\nCPREMOTE_PASSWORD=mypassword\n# file size units for 'ls' command: 'b' - bytes, 'kb' - kilobytes or 'blocks'\nCPREMOTE_UNITS=kb\n```\n\n# example command usage\n\n## ls\nShow the root directory on the remote filesystem\n```sh\ncpremote ls\n```\n\n## get\nCopy `code.py` from the remote filesystem to the console\n```sh\ncpremote get code.py\n```\n\n## put\nCopy `code.py` from the local filesystem to the remote filesystem. Note that the CircuitPython board's hostname and password can be set in `.env`, or can be overriden on the command line\n```sh\ncpremote --host http://1.2.3.4 --password mypassword put code.py\n```\n\n## repl\nThe `repl` command will launch a basic web repl using the default system browser\n\n## help\nFull help. Also, note that help for individual command line options is available using `-h` or `--help` before a command\n```\ncpremote --help\nusage: cpremote [-h] [--host HOST] [--password PASSWORD] [--units {b,kb,blocks}] [-v] {devices,diskinfo,get,ls,mkdir,mv,put,repl,rm,rmdir,version} ...\n\nCircuitPython remote filesystem access for web based workflow\n\npositional arguments:\n  {devices,diskinfo,get,ls,mkdir,mv,put,repl,rm,rmdir,version}\n                        command help\n    devices             show info about CircuitPython devices on the local network\n    diskinfo            show disk info about the remote filesystem\n    get                 get a file from remote filesystem\n    ls                  list a directory on the remote filesystem\n    mkdir               make a directory on the remote filesystem\n    mv                  move (rename) a file or directory on the remote filesystem\n    put                 put a file on the remote filesystem\n    repl                start Web REPL\n    rm                  remove a file on the remote filesystem\n    rmdir               remove the directory and all of its contents on the remote filesystem\n    version             returns information about the device\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --host HOST           CircuitPython host name. Overrides CPREMOTE_HOST environment variable\n  --password PASSWORD   CircuitPython password.Overrides CPREMOTE_PASSWORD environment variable\n  --units {b,kb,blocks}\n                        file size units. Overrides CPREMOTE_UNIT environment variable\n  -v, --version         show program's version number and exit\n```\n\n# IP addresses vs mDNS local host names\nIn my experience, using IP addresses seems to be more performant than mDNS local host names when accessing a CircuitPython board. However, this may be an issue in my local network so your experience may be different\n\n# Attribution\nCircuitPython is created by Adafruit Industries.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdszlucha%2Fcpremote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdszlucha%2Fcpremote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdszlucha%2Fcpremote/lists"}