Nanoprogrammed Penultimate Musicianship
    Have ideas to improve npm?Join in the discussion! »

    @treehouses/cli

    1.25.57 • Public • Published

    @treehouses/cli

    Build Status npm version npm Gitter

    About

    @treehouses/cli is a command-line interface for Raspberry Pi that is used to manage various services and functions. Including vnc, ssh, tor, vpn, networking, starting services, bluetooth, led lights, and much more! Also treehouses remote uses this interface.

    Install

    @treehouses/cli comes pre-installed on the treehouses image made with builder. To manually install on a Pi:

    sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
    sudo apt-get install -y nodejs
    sudo npm i -g --unsafe-perm @treehouses/cli

    If you run into any problems check if your RPi is supported here.

    Features

    Usage: treehouses [command] ...
    
    
    Commands:
    
    help [command]                            gives you a more detailed info about the command or will output this
    verbose <on|off>                          makes each command print more output (might not work with treehouses remote)
    expandfs                                  expands the partition of the RPI image to the maximum of the SD card
    rename <hostname>                         changes hostname
    password <disable|enable|change [passwd]> changes the password for 'pi' user or disables/enables password authentication
    sshkey <add|list|delete|deleteall|github> used for adding or removing ssh keys for authentication
    version [contributors|remote]             returns the version of treehouses CLI, remote, or list of contributors
    image                                     returns version of the system image installed
    detect [bluetooth|rpi|arm|arch|wifi]      detects the hardware version of any device
    ethernet <ip> <mask> <gateway> <dns>      configures rpi network interface to a static ip address
    discover <scan|interface|ping|ports|mac>  performs network scan and discovers all raspberry pis on the network
             <rpi> [ipaddress|url|macaddress]
             <wifi|self> <gateway> [list]
    wifi <ESSID> [password] [identity]        connects to a wifi network
    wifihidden <ESSID> [password] [identity]  connects to a hidden wifi network
    tether                                    enable usb0 interface tethering
    staticwifi <ip> <mask> <gateway> <dns>    configures rpi wifi interface to a static ip address
               <ESSID> [password]
    wifistatus                                displays signal strength in dBm and layman nomenclature
    bridge <ESSID> <hotspotESSID>             configures the rpi to bridge the wlan interface over a hotspot
           [password] [hotspotPassword]
    config [update|add|delete|clear]          commands for interacting with config file
    container <none|docker|balena>            enables (and start) the desired container
    bluetooth [on|off|pause|restart|button]   switches bluetooth from regular to hotspot mode and shows id or MAC address
              [mac|id|status|log]
    ap <local|internet> <ESSID> [password]    creates a mobile ap, which has two modes: local (no eth0 bridging), internet (eth0 bridging)
    aphidden <local|internet> <ESSID>         creates a hidden mobile ap with or without internet access
             [password]
    apchannel [channel]                       sets or prints the current ap channel
    timezone <timezone>                       sets the timezone of the system
    locale <locale>                           sets the system locale
    ssh [on|off|fingerprint]                  enables or disables the ssh service,
        [2fa] <add|enable|disable>            prints out fingerprint of the ssh daemon
              <remove|show>                   and deals with two factor authentication
    vnc [on|off|info|auth|password]           enables or disables the vnc server service
    default [network|notice|tunnel]           sets a raspbian back to default configuration
    wificountry <country>                     sets the wifi country
    upgrade [tag|check|bluetooth|force|cli]   upgrades treehouses package using npm
    sshtunnel [add|remove|list|active|check]  helps adding sshtunnels
              [key|refresh|notice|ports]
    led [green|red] [mode]                    sets the led mode
        [newyear|blackhistorymonth]
        [lunarnewyear|valentine|carnival]
        [lantern|stpatricks|easter|labourday]
        [eid|dragonboat|independenceday|onam]
        [diwali|thanksgiving|christmas]
        [heavymetal|dance|kecak|sandstorm]
        [random]
    power [mode|current|freq|status]          sets the power mode or check power mode/CPU frequency
    uptime [boot|start|stop|log]              displays uptime and boot time of the Raspberry Pi
    rtc <on|off> [rasclock|ds3231]            sets up the rtc clock specified
    ntp <local|internet>                      sets rpi to host timing locally or to get timing from a remote server
    networkmode                               outputs the current network mode
    button <off|bluetooth>                    gives the gpio pin 18 an action
    feedback <message>                        sends feedback
    clone [detect|device path]                clones the current SD Card onto a secondary SD Card or specified device
    restore [device path]                     restores a treehouses image to an SD Card or specified device
    burn [device path]                        download and burns the latest treehouses image to the SD card or specified device
    rebootneeded                              shows if reboot is required to apply changes
    reboots <now|in|cron>                     reboots at given frequency | removes it if reboot task active
            <daily|weekly|monthly>
    internet [reverse]                        checks if the rpi has access to internet
    services                                  executes the given command on the specified service
       <available|installed [full]>           list available, and installed services
       <ports|running [full]>                 list ports used by services and services running
       [planet]       <install>               Planet Learning is a generic learning system built in Angular & CouchDB
       [kolibri]      <up>                    Kolibri is a learning platform using DJango
       [nextcloud]    <start>                 Nextcloud is a safe home for all your data, files, etc
       [netdata]      <restart>               Netdata is a distributed, real-time performance and health monitoring for systems
       [mastodon]     <stop>                  Mastodon is a free, open-source social network server
       [moodle]       <down>                  Moodle is a learning management system built in PHP
       [pihole]       <cleanup>               Pi-hole is a DNS sinkhole that protects your devices from unwanted content
       [privatebin]   <autorun [true|false]>  PrivateBin is a minimalist, open source online pastebin
       [portainer]    <url [local|tor]>       Portainer is a lightweight management UI for Docker environments
       [ntopng]       <info>                  Ntopng is a network traffic probe that monitors network usage
       [couchdb]      <size>                  CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang
       [mariadb]      <icon>                  MariaDB is a community-developed fork of the MySQL relational database management system
       [mongodb]      <port|ps>               MongoDB is a general purpose, distributed, document-based, NoSQL database
       [seafile]      <config>                Seafile is an open-source, cross-platform file-hosting software system
       [turtleblocksjs]                       TurtleBlocks is an activity with a Logo-inspired graphical "turtle" that draws colorful art
       [musicblocks]                          MusicBlocks is a programming language for exploring musical concepts in an fun way
       [minetest]                             Minetest is an open source infinite-world block sandbox game engine with survival and crafting
       [invoiceninja]                         Invoiceninja is the leading self-host platform to create invoices
       [librespeed]                           Librespeed is a very lightweight Speedtest implemented in Javascript
       [grocy]                                Grocy is a web-based, self-hosted groceries and household management utility for your home
       [dokuwiki]                             Dokuwiki is a simple to use and highly versatile Open Source wiki software
       [bookstack]                            Bookstack is a free and open source Wiki designed for creating beautiful documentation
       [transmission]                         Transmission is a BitTorrent client with many powerful features
       [piwigo]                               Piwigo is a photo gallery software to publish and manage your collection of pictures
       [cloud9]                               cloud9 is a complete web based ide with terminal access
       [jellyfin]                             Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media
       [pylon]                                Pylon is a web based integrated development environment built with Node.js as a backend
       [rutorrent]                            Rutorrent is a popular rtorrent client with a webui for ease of use
       [webssh]                               Webssh is a simple web application to be used as an ssh client to connect to your ssh servers
       [sysmon]                               Sysmon is an intuitive system performance monitoring and task management tool for servers
    tor [list|ports|add|delete|deleteall]     deals with services on tor hidden network
        [start|stop|destroy|notice]
        [status|refresh]
    bootoption <console|desktop> [autologin]  sets the boot mode
               <modules|params>
    openvpn [use|show|delete]                 helps setting up an openvpn client
            [notice|start|stop|load]
    shadowsocks [list|add|enable|start]       manage shadowsocks, a socks5 proxy designed
                [enter|disable|stop|remove]   to "protect" your Internet traffic
    coralenv [install|demo-on|demo-off]       plays with the coral environmental board
             [demo-always-on]
    memory [total|used|free] [gb|mb]          displays the total memory of the device, the memory used as well as the available free memory
    storage [total|used|free] [gb|mb|kb]      displays the total storage of the device, the storage used as well as the available free storage
    temperature [celsius|fahrenheit|kelvin]   displays raspberry pi's CPU temperature
    speedtest                                 tests internet download and upload speed
    camera [on|off|detect|capture|record]     enables and disables camera, detects camera module version, captures photo, records video
    picture [file|url]                        displays a picture in the terminal
    cron [list|add|delete|deleteall]          adds, deletes a custom cron job or deletes, lists all cron jobs
         [0W|tor|timestamp]                   adds premade cron job (or removes it if already active)
    usb [on|off]                              turns usb ports on or off
    redirect [add|list|remove|start]          redirects internet hostnames to rpi
    remote <check|status|upgrade|services>    helps with treehouses remote android app
           <version|commands|reverse>
           <allservices|statuspage|ssh2fa>
           <help|key>
    log <0|1|2|3|4|show|max>                  gets/sets log level and shows log
    blocker <0|1|2|3|4||max>                  website blocking levels using /etc/hosts
    sdbench                                   displays read and write speed of micro SD card
    inspire [fact|joke|qotd|random]           displays quote based on user input
    convert <input file> <output file>        converts video and audio files
    gpio                                      displays raspberry pi model and corresponding GPIO ports
    changelog [view|compare]                  displays the most recent changes to treehouses
    magazines                                 downloads specific magazine issue as a pdf based on user input
       <available|downloaded>                 lists the available magazine types, lists downloaded magazines in a tree format
       <helloworld>       [all]               downloads all issues of magazine
       <hackspace>        [latest]            downloads latest issue of magazine
       <magpi>            [number]            downloads issue [number] of magazine
       <wireframe>        [list]              lists downloaded magazines in tree format of specific magazine
                          [url]               shows the homepage URL of magazine
    resolution <cea|dmt [modes]>              sets the screen resolution depending on the attached display device
    system [cpu|ram|disk|volt|temperature]    display real system informations
    message                                   sends message to chat service
       <gitter>  <apitoken|authorize>         sets api/channel info in config file 
                 <send|show|read|mark>        sends/recieves messages in gitter
                 <channels>
       <slack>   <apitoken|channels>          sets api/channel info in config file 
                 <send|show|read|mark>        sends/recieves messages in slack
       <discord> <apitoken|authorize>         sets api/channel info in config file
    shutdown [now|in|force]                   shutdown the system
    

    Additional README's

    Add a new feature

    Feel free to make a pull request to our repository. Remember the following files will have to be updated to add a feature:

    /modules/help.sh       # help text
    README.md              # readme
    _treehouses            # tabcompletion
    /modules/<featurefile> # bash
    /tests/<featurefile>   # bash bats tests
    

    Install

    npm i @treehouses/cli

    DownloadsWeekly Downloads

    181

    Version

    1.25.57

    License

    AGPL-3.0-only

    Unpacked Size

    16.3 MB

    Total Files

    297

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar