{"id":28163748,"url":"https://github.com/patrickp02/picoshell","last_synced_at":"2026-05-06T22:01:57.462Z","repository":{"id":287093546,"uuid":"963580158","full_name":"patrickp02/PicoShell","owner":"patrickp02","description":"PicoShell is a lightweight, real-time command-line interface (CLI) for the Raspberry Pi Pico W 2 (RP2350 dual-core), built entirely in MicroPython. It brings a minimal UNIX-style shell to embedded hardware with support for Wi-Fi networking, filesystem interaction, script execution, telnet access, and more.","archived":false,"fork":false,"pushed_at":"2025-06-09T21:47:16.000Z","size":252,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-23T03:56:46.239Z","etag":null,"topics":["cli","embedded","iot","micropython","pico","raspberry-pi-pico","shell"],"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/patrickp02.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,"zenodo":null}},"created_at":"2025-04-09T22:35:50.000Z","updated_at":"2026-02-18T18:16:22.000Z","dependencies_parsed_at":"2025-05-13T21:42:02.267Z","dependency_job_id":"a79dc80e-4f9f-4d9b-8b6c-090182a94501","html_url":"https://github.com/patrickp02/PicoShell","commit_stats":null,"previous_names":["bigairdaddy/picoshell","patrickp02/picoshell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patrickp02/PicoShell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickp02%2FPicoShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickp02%2FPicoShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickp02%2FPicoShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickp02%2FPicoShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickp02","download_url":"https://codeload.github.com/patrickp02/PicoShell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickp02%2FPicoShell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32713820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"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":["cli","embedded","iot","micropython","pico","raspberry-pi-pico","shell"],"created_at":"2025-05-15T11:14:23.340Z","updated_at":"2026-05-06T22:01:57.211Z","avatar_url":"https://github.com/patrickp02.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PicoShell\n\n**PicoShell** is a lightweight, real-time command-line interface (CLI) for the Raspberry Pi Pico W 2 (RP2350 dual-core), built entirely in MicroPython. It brings a minimal UNIX-style shell to embedded hardware with support for Wi-Fi networking, filesystem interaction, script execution, telnet access, and more.\n\n---\n![PicoShell Screenshot](pico-shell.png)\n\n\n## Features\n\n- Basic shell command interface over USB or Telnet\n- Wi-Fi networking with persistent config\n- Telnet daemon that autostarts on successful network connection\n- Filesystem tools: create, read, delete, navigate\n- Script runner and file downloader\n- System utilities: memory, clock speed, device info, and overclocking\n- Built for expansion and real task threading with RP2350\n\n---\n\n## Commands\n\n### General\n\n| Command      | Description                          |\n|--------------|--------------------------------------|\n| `help`, `h`  | Show this help message               |\n| `about`      | Show shell version \u0026 system info     |\n| `clear`      | Clear the terminal display           |\n| `exit`       | Exits back to MicroPython            |\n\n### Filesystem\n\n| Command        | Description                          |\n|----------------|--------------------------------------|\n| `pwd`          | Print current working directory      |\n| `ls`           | List files and directories           |\n| `cd \u003cdir\u003e`     | Change directory                     |\n| `mkdir \u003cdir\u003e`  | Create a directory                   |\n| `rmdir \u003cdir\u003e`  | Remove a directory                   |\n| `rm \u003cfile\u003e`    | Delete a file                        |\n| `read \u003cfile\u003e`  | Print contents of a file             |\n\n### Networking\n\n| Command              | Description                            |\n|----------------------|----------------------------------------|\n| `wifi`               | Connect to Wi-Fi using config file     |\n| `ifconfig`           | Show IP and network info               |\n| `ping \u003chost\u003e`        | Ping a host by IP or domain            |\n| `curl \u003curl\u003e`         | Fetch and display content from URL     |\n| `clone \u003curl\u003e [name]` | Download file from GitHub/raw URL      |\n| `scan`               | Scan nearby Wi-Fi networks             |\n| `pmap \u003chost\u003e`        | Nmap-style port scanner                |\n\n### Telnet\n\n| Command          | Description                            |\n|------------------|----------------------------------------|\n| `telnet launch`  | Start the telnet server                |\n| `telnet stop`    | Stop the telnet server                 |\n\n### Scripts\n\n| Command          | Description                            |\n|------------------|----------------------------------------|\n| `run \u003cfile.py\u003e`  | Execute a Python script from storage   |\n\n### System\n\n| Command           | Description                            |\n|-------------------|----------------------------------------|\n| `setclock \u003cMHz\u003e`  | Set CPU frequency (40–260 MHz)         |\n| `clock`           | Show current CPU clock speed           |\n| `dspace`          | Show available storage                 |\n| `ram`             | Show current RAM usage                 |\n| `sysinfo`         | Show detailed system/platform info     |\n\n---\n\n## Project Structure\n\n```\nboot.py             # Wi-Fi and Telnet auto-connect on boot\nMain.py             # Main CLI loop\nutils.py            # Core shell commands\nutelnetserver.py    # Lightweight Telnet server\nhelp.txt            # CLI help text\nconfig.txt          # Wi-Fi credentials (SSID=..., PASSWORD=...)\n```\n\n---\n\n## Getting Started\n\n### 1. Flash MicroPython to Your Pico W 2\n\n- Download the latest **MicroPython UF2 firmware** for the **Pico W 2 (RP2350)** from the [official MicroPython downloads page](https://micropython.org/download/rp2-pico-w/).\n- Hold the **BOOTSEL** button while plugging in your Pico to your computer. It will appear as a USB drive.\n- Drag and drop the downloaded `.uf2` file onto that drive.\n- The Pico will reboot into MicroPython mode.\n\n### 2. Upload PicoShell Files\n\n- Upload the following to the root of the Pico filesystem:\n\n  - `boot.py`\n  - `Main.py`\n  - `utils.py`\n  - `telnet`\n  - `docs`\n  - `config.txt`\n\nYou can use any of the following tools:\n\n#### Thonny IDE (GUI)\n\n- Open [Thonny](https://thonny.org)\n- Select \"MicroPython (Raspberry Pi Pico)\"\n- Use the file browser to upload each file listed above\n\n#### mpremote (CLI)\n\n```bash\nmpremote connect ttyUSB0 fs cp boot.py :\nmpremote connect ttyUSB0 fs cp Main.py :\nmpremote connect ttyUSB0 fs cp utils.py :\nmpremote connect ttyUSB0 fs cp utelnetserver.py :\nmpremote connect ttyUSB0 fs cp help.txt :\nmpremote connect ttyUSB0 fs cp config.txt :\n```\n\n\u003e Replace `ttyUSB0` with your actual serial port (e.g., `COM3` on Windows).\n\n#### rshell / ampy\n\n- Use `rshell` or `ampy` to push files to `/` on the board.\n\n### 3. Configure Wi-Fi\n\nCreate a file called `config.txt` on the Pico containing:\n\n```\nSSID=YourNetwork\nPASSWORD=YourPassword\n```\n\n- No spaces around the `=`\n- No quotes\n- Must be exact format\n\n### 4. Run PicoShell\n\n- Reset or power on the Pico W\n- It will:\n  - Connect to Wi-Fi using `config.txt`\n  - Auto-start the telnet server\n  - Drop into CLI via USB serial or Telnet if online\n\n---\n\n## License\n\nMIT License — use it, modify it, ship it, just don’t pretend you made it.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickp02%2Fpicoshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickp02%2Fpicoshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickp02%2Fpicoshell/lists"}