0.0.18 • Public • Published


    Join the chat at


    A decentralized Nodejs workflow tool used to manage software on any server.

    KnowHow is a tool that can be used to run any task on any cluster of machines virtual or physical. Examples can be as complex as configuring an enterprise weblogic cluster on a specific set of hosts or as simple as updating personal ssh keys. Think of it as a personal Puppet or Chef without the overhead. The only requirement for KnowHow is an ssh login on a host you are using or managing. KnowHow creates an agent that allows you to remotely execute and deliver files. KnowHow and its agents are operated through a simple web interface. The most important benefit of KnowHow is the knowledge is retained and processes are repeatable. Once a workflow is set up it should be repeatable on any environment.

    Documentation >>

    Live Demo >>

    Project homepage >>


    Key Concepts


    A knowhow agent is a simple web application that provides a control interface to execute knowhow jobs. Knowhow-agents run as a specific user on a specific port(default 3000), and are coordinated by the knowhow-server.


    Knowhow-server, this project, manages agents, jobs, workflows and repositories. It is a web application accessed through the browser http://localhost:3001.


    Knowhow-api provides a nodejs programming interface to a knowhow server. It supports all functionality available via the knowhow server web GUI, and allows full automation of a knowhow server. It also includes the command tool KHCommand, which allows any api command to be executed from a shell script.


    A collection of json objects, and other dependent files that represent jobs, environments, and workflows. Repositories are currently file based and is a directory with the following top folders: environments, jobs, workflows. Each folder contains the specifc types of objects: jobs for job objects, environments environment json objects, and workflows for workflow objects. The may be other nested folder structures underneath one of the top 3 directories. Eventually there will be database based repositories. See knowhow_example_repo for an example repository structure.


    A knowhow job is a json object that represents a task or shell script. Jobs contain a list of shell commands with reponses to specific text if necessary. Jobs also define environment variables that can be referenced through the json object for easier automation. See the knowhow-shell project for how to use knowhow jobs directly from node.


    An environment is a collection of hosts that run knowhow-agents. Environments are referenced by workflow objects to coordinate across different hosts.


    A workflow is a directive of jobs or tasks that get run against an environment.


    For node users:

    npm install -g knowhow

    For everyone else there is an RPM that includes a nodejs binary:

    sudo rpm -ivh

    Getting Started

    To start the server execute:


    please follow the getting started section here: knowhow-server

    To start the agent execute:

    startKHAgent --port=<PORT_NUM> default port is 3001 if not supplied

    To run a knowhow server directly from a cloned project:

    node node_modules/knowhow_server/server.js

    To run a knowhow agent directly from a cloned project:

    node node_modules/knowhow_agent/agent.js

    Open the knowhow server in a browser Ex: http://localhost:3001

    Example Repository

    The example repository acts as a tutorial. Import this repository to get started. Navigate to Repositories tab and then select the "New Repository" sub tab.


    npm i knowhow

    DownloadsWeekly Downloads






    Last publish


    • jfelten