{"id":15018346,"url":"https://github.com/treehouses/cli","last_synced_at":"2025-09-01T00:31:06.517Z","repository":{"id":28703215,"uuid":"119115389","full_name":"treehouses/cli","owner":"treehouses","description":"cli 🦄 for raspberry pi images of type treehouses ","archived":false,"fork":false,"pushed_at":"2024-06-26T20:03:16.000Z","size":2077,"stargazers_count":44,"open_issues_count":332,"forks_count":20,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-10-29T17:37:36.791Z","etag":null,"topics":["cli","hacktoberfest","npm","raspberry-pi","shell","treehouses"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@treehouses/cli","language":"Shell","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/treehouses.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":"2018-01-26T23:45:03.000Z","updated_at":"2024-06-26T19:23:24.000Z","dependencies_parsed_at":"2024-04-04T23:43:16.435Z","dependency_job_id":"41509a89-079e-4a9a-be52-504c269fda7a","html_url":"https://github.com/treehouses/cli","commit_stats":{"total_commits":865,"total_committers":44,"mean_commits":19.65909090909091,"dds":0.8809248554913295,"last_synced_commit":"3050195ee713378a317199254d70415ef6da190d"},"previous_names":[],"tags_count":760,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treehouses%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treehouses%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treehouses%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treehouses%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/treehouses","download_url":"https://codeload.github.com/treehouses/cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231639117,"owners_count":18404269,"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":["cli","hacktoberfest","npm","raspberry-pi","shell","treehouses"],"created_at":"2024-09-24T19:51:51.741Z","updated_at":"2024-12-28T15:13:19.982Z","avatar_url":"https://github.com/treehouses.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @treehouses/cli\n\n[![Build Status](https://travis-ci.org/treehouses/cli.svg?branch=master)](https://travis-ci.org/treehouses/cli)\n[![npm version](https://badge.fury.io/js/%40treehouses%2Fcli.svg)](https://www.npmjs.com/package/%40treehouses%2Fcli)\n[![npm](https://img.shields.io/npm/dw/@treehouses/cli)](https://www.npmjs.com/package/%40treehouses%2Fcli)\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/treehouses/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## About\n\n@treehouses/cli is a command-line interface for Raspberry Pi that is used to manage various services and functions.\nIncluding vnc, ssh, tor, vpn, networking, starting services, bluetooth, led lights, and much more!\nAlso [treehouses remote](https://github.com/treehouses/remote) uses this interface.\n\n## Install\n\n@treehouses/cli comes pre-installed on the treehouses image made with [builder](https://github.com/treehouses/builder).\nTo manually install on a Pi:\n```bash\nsudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -\nsudo apt-get install -y nodejs\nsudo npm i -g --unsafe-perm @treehouses/cli\n```\nIf you run into any problems check if your RPi is supported [here](https://github.com/treehouses/cli/blob/836c2e9b0bcebfe6afc97706634e7c070d795eac/modules/detect.sh#L5-L42).\n\n## Features\n\n```\nUsage: treehouses [command] ...\n\n\nCommands:\n\nhelp [command]                            gives you a more detailed info about the command or will output this\nverbose \u003con|off\u003e                          makes each command print more output (might not work with treehouses remote)\nexpandfs                                  expands the partition of the RPI image to the maximum of the SD card\nrename \u003chostname\u003e                         changes hostname\npassword \u003cdisable|enable|change [passwd]\u003e changes the password for 'pi' user or disables/enables password authentication\nsshkey \u003cadd|list|delete|deleteall|github\u003e used for adding or removing ssh keys for authentication\nversion [contributors|remote]             returns the version of treehouses CLI, remote, or list of contributors\nimage                                     returns version of the system image installed\ndetect [bluetooth|rpi|arm|arch|wifi]      detects the hardware version of any device\nethernet \u003cip\u003e \u003cmask\u003e \u003cgateway\u003e \u003cdns\u003e      configures rpi network interface to a static ip address\ndiscover \u003cscan|interface|ping|ports|mac\u003e  performs network scan and discovers all raspberry pis on the network\n         \u003crpi\u003e [ipaddress|url|macaddress]\n         \u003cwifi|self\u003e \u003cgateway\u003e [list]\nwifi \u003cESSID\u003e [password] [identity]        connects to a wifi network\nwifihidden \u003cESSID\u003e [password] [identity]  connects to a hidden wifi network\ntether                                    enable usb0 interface tethering\nstaticwifi \u003cip\u003e \u003cmask\u003e \u003cgateway\u003e \u003cdns\u003e    configures rpi wifi interface to a static ip address\n           \u003cESSID\u003e [password]\nwifistatus                                displays signal strength in dBm and layman nomenclature\nbridge \u003cESSID\u003e \u003chotspotESSID\u003e             configures the rpi to bridge the wlan interface over a hotspot\n       [password] [hotspotPassword]\nconfig [update|add|delete|clear]          commands for interacting with config file\ncontainer \u003cnone|docker|balena\u003e            enables (and start) the desired container\nbluetooth [on|off|pause|restart|button]   switches bluetooth from regular to hotspot mode and shows id or MAC address\n          [mac|id|status|log]\nap \u003clocal|internet\u003e \u003cESSID\u003e [password]    creates a mobile ap, which has two modes: local (no eth0 bridging), internet (eth0 bridging)\naphidden \u003clocal|internet\u003e \u003cESSID\u003e         creates a hidden mobile ap with or without internet access\n         [password]\napchannel [channel]                       sets or prints the current ap channel\ntimezone \u003ctimezone\u003e                       sets the timezone of the system\nlocale \u003clocale\u003e                           sets the system locale\nssh [on|off|fingerprint]                  enables or disables the ssh service,\n    [2fa] \u003cadd|enable|disable\u003e            prints out fingerprint of the ssh daemon\n          \u003cremove|show\u003e                   and deals with two factor authentication\nvnc [on|off|info|auth|password]           enables or disables the vnc server service\ndefault [network|notice|tunnel]           sets a raspbian back to default configuration\nwificountry \u003ccountry\u003e                     sets the wifi country\nupgrade [tag|check|bluetooth|force|cli]   upgrades treehouses package using npm\nsshtunnel [add|remove|list|active|check]  helps adding sshtunnels\n          [key|refresh|notice|ports]\nled [green|red] [mode]                    sets the led mode\n    [newyear|blackhistorymonth]\n    [lunarnewyear|valentine|carnival]\n    [lantern|stpatricks|easter|labourday]\n    [eid|dragonboat|independenceday|onam]\n    [diwali|thanksgiving|christmas]\n    [heavymetal|dance|kecak|sandstorm]\n    [random]\npower [mode|current|freq|status]          sets the power mode or check power mode/CPU frequency\nuptime [boot|start|stop|log]              displays uptime and boot time of the Raspberry Pi\nrtc \u003con|off\u003e [rasclock|ds3231]            sets up the rtc clock specified\nntp \u003clocal|internet\u003e                      sets rpi to host timing locally or to get timing from a remote server\nnetworkmode                               outputs the current network mode\nbutton \u003coff|bluetooth\u003e                    gives the gpio pin 18 an action\nfeedback \u003cmessage\u003e                        sends feedback\nclone [detect|device path]                clones the current SD Card onto a secondary SD Card or specified device\nrestore [device path]                     restores a treehouses image to an SD Card or specified device\nburn [device path]                        download and burns the latest treehouses image to the SD card or specified device\nrebootneeded                              shows if reboot is required to apply changes\nreboots \u003cnow|in|cron\u003e                     reboots at given frequency | removes it if reboot task active\n        \u003cdaily|weekly|monthly\u003e\ninternet [reverse]                        checks if the rpi has access to internet\nservices                                  executes the given command on the specified service\n   \u003cavailable|installed [full]\u003e           list available, and installed services\n   \u003cports|running [full]\u003e                 list ports used by services and services running\n   [planet]       \u003cinstall\u003e               Planet Learning is a generic learning system built in Angular \u0026 CouchDB\n   [kolibri]      \u003cup\u003e                    Kolibri is a learning platform using DJango\n   [nextcloud]    \u003cstart\u003e                 Nextcloud is a safe home for all your data, files, etc\n   [netdata]      \u003crestart\u003e               Netdata is a distributed, real-time performance and health monitoring for systems\n   [mastodon]     \u003cstop\u003e                  Mastodon is a free, open-source social network server\n   [moodle]       \u003cdown\u003e                  Moodle is a learning management system built in PHP\n   [pihole]       \u003ccleanup\u003e               Pi-hole is a DNS sinkhole that protects your devices from unwanted content\n   [privatebin]   \u003cautorun [true|false]\u003e  PrivateBin is a minimalist, open source online pastebin\n   [portainer]    \u003curl [local|tor]\u003e       Portainer is a lightweight management UI for Docker environments\n   [ntopng]       \u003cinfo\u003e                  Ntopng is a network traffic probe that monitors network usage\n   [couchdb]      \u003csize\u003e                  CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang\n   [mariadb]      \u003cicon\u003e                  MariaDB is a community-developed fork of the MySQL relational database management system\n   [mongodb]      \u003cport|ps\u003e               MongoDB is a general purpose, distributed, document-based, NoSQL database\n   [seafile]      \u003cconfig\u003e                Seafile is an open-source, cross-platform file-hosting software system\n   [turtleblocksjs]                       TurtleBlocks is an activity with a Logo-inspired graphical \"turtle\" that draws colorful art\n   [musicblocks]                          MusicBlocks is a programming language for exploring musical concepts in an fun way\n   [minetest]                             Minetest is an open source infinite-world block sandbox game engine with survival and crafting\n   [invoiceninja]                         Invoiceninja is the leading self-host platform to create invoices\n   [librespeed]                           Librespeed is a very lightweight Speedtest implemented in Javascript\n   [grocy]                                Grocy is a web-based, self-hosted groceries and household management utility for your home\n   [dokuwiki]                             Dokuwiki is a simple to use and highly versatile Open Source wiki software\n   [bookstack]                            Bookstack is a free and open source Wiki designed for creating beautiful documentation\n   [transmission]                         Transmission is a BitTorrent client with many powerful features\n   [piwigo]                               Piwigo is a photo gallery software to publish and manage your collection of pictures\n   [cloud9]                               cloud9 is a complete web based ide with terminal access\n   [jellyfin]                             Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media\n   [pylon]                                Pylon is a web based integrated development environment built with Node.js as a backend\n   [rutorrent]                            Rutorrent is a popular rtorrent client with a webui for ease of use\n   [webssh]                               Webssh is a simple web application to be used as an ssh client to connect to your ssh servers\n   [sysmon]                               Sysmon is an intuitive system performance monitoring and task management tool for servers\n   [epaath]                               Epaath is an interactive educational activity\ntor [list|ports|add|delete|deleteall]     deals with services on tor hidden network\n    [start|stop|destroy|notice]\n    [status|refresh]\nbootoption \u003cconsole|desktop\u003e [autologin]  sets the boot mode\n           \u003cmodules|params\u003e\nopenvpn [use|show|delete]                 helps setting up an openvpn client\n        [notice|start|stop|load]\nshadowsocks [list|add|enable|start]       manage shadowsocks, a socks5 proxy designed\n            [enter|disable|stop|remove]   to \"protect\" your Internet traffic\ncoralenv [install|demo-on|demo-off]       plays with the coral environmental board\n         [demo-always-on]\nmemory [total|used|free] [gb|mb]          displays the total memory of the device, the memory used as well as the available free memory\nstorage [total|used|free] [gb|mb|kb]      displays the total storage of the device, the storage used as well as the available free storage\ntemperature [celsius|fahrenheit|kelvin]   displays raspberry pi's CPU temperature\nspeedtest                                 tests internet download and upload speed\ncamera [on|off|detect|capture|record]     enables and disables camera, detects camera module version, captures photo, records video\npicture [file|url]                        displays a picture in the terminal\ncron [list|add|delete|deleteall]          adds, deletes a custom cron job or deletes, lists all cron jobs\n     [0W|tor|timestamp]                   adds premade cron job (or removes it if already active)\nusb [on|off]                              turns usb ports on or off\nredirect [add|list|remove|start]          redirects internet hostnames to rpi\nremote \u003ccheck|status|upgrade|services\u003e    helps with treehouses remote android app\n       \u003cversion|commands|reverse\u003e\n       \u003callservices|statuspage|ssh2fa\u003e\n       \u003chelp|key\u003e\nlog \u003c0|1|2|3|4|show|max\u003e                  gets/sets log level and shows log\nblocker \u003c0|1|2|3|4||max\u003e                  website blocking levels using /etc/hosts\nsdbench                                   displays read and write speed of micro SD card\ninspire [fact|joke|qotd|random]           displays quote based on user input\nconvert \u003cinput file\u003e \u003coutput file\u003e        converts video and audio files\ngpio                                      displays raspberry pi model and corresponding GPIO ports\nchangelog [view|compare]                  displays the most recent changes to treehouses\nmagazines                                 downloads specific magazine issue as a pdf based on user input\n   \u003cavailable|downloaded\u003e                 lists the available magazine types, lists downloaded magazines in a tree format\n   \u003chelloworld\u003e       [all]               downloads all issues of magazine\n   \u003chackspace\u003e        [latest]            downloads latest issue of magazine\n   \u003cmagpi\u003e            [number]            downloads issue [number] of magazine\n   \u003cwireframe\u003e        [list]              lists downloaded magazines in tree format of specific magazine\n                      [url]               shows the homepage URL of magazine\nresolution \u003ccea|dmt [modes]\u003e              sets the screen resolution depending on the attached display device\nsystem [cpu|ram|disk|volt|temperature]    display real system informations\nmessage                                   sends message to chat service\n   \u003cgitter\u003e  \u003capitoken|authorize\u003e         sets api/channel info in config file \n             \u003csend|show|read|mark\u003e        sends/recieves messages in gitter\n             \u003cchannels\u003e\n   \u003cslack\u003e   \u003capitoken|channels\u003e          sets api/channel info in config file \n             \u003csend|show|read|mark\u003e        sends/recieves messages in slack\n   \u003cdiscord\u003e \u003capitoken|authorize\u003e         sets api/channel info in config file\nshutdown [now|in|force]                   shutdown the system\n```\n\n## Additional README's\n- [Services](https://github.com/treehouses/cli/tree/master/services/README.md)\n- [Tests](https://github.com/treehouses/cli/tree/master/tests/README.md)\n\n## Add a new feature\nFeel free to make a pull request to our repository.\nRemember the following files\nwill have to be updated to add a feature:\n```\n/modules/help.sh       # help text\nREADME.md              # readme\n_treehouses            # tabcompletion\n/modules/\u003cfeaturefile\u003e # bash\n/tests/\u003cfeaturefile\u003e   # bash bats tests\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreehouses%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftreehouses%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreehouses%2Fcli/lists"}