Narcissistic Project Managers
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



    Build Status Code Climate

    An open-source, context-aware, event based team communication tool designed with emphasis on software development teams.


    1. Download and install RethinkDB if you haven't already
    2. npm install -g perspectiveapp


    1. Run rethinkdb in one shell/process
    2. Run perspectiveapp in another shell/process


    See lib/server/config.js for the default configuration. You may override these settings by creating a custom configuration file with the same structure and placing it under ~/.perspective/config.json


    How is Perspective different from Slack, HipChat et. al?

    Perspective is open-source and free to use, even for on-site installations behind pesky firewalls. Also, while there is a long way to go, Perspective aims to be more than chat by providing the right information at the right time to the right user. Examples:

    • Present key events on a dashboard suitable on a TV for your whole team to see
    • Switch the dashboard into a special mode during stand-ups to provide the most relevant information
    • A view of Stash/Jenkins branch and build jobs as a separate overview page (in addition to being posted in relevant chat rooms)
    • A view of the currently installed applications and versions in different server environments (in addition to deploy notifications in chat rooms)

    What's the high level architectural ideas?

    • "Everything" is an event. A chat message is simply an event of a specific type. Similar a build job on Jenkins will be an event of another type. Integrations will be able to format events in a chat room, hook into "dashboards", create its own menu entries, listen for other events to produce new events and more.

    Is it stable?

    Not at all. Yet :)


    Contributions are most welcome! Simply open an issue or create a pull request.


    1. Install RethinkDB
    2. Clone this repo
    3. npm install
    4. Run npm run watch (npm run watch:server -- -- --verbose for debug logging)
    • See npm run for a list of other options.
    • Run perspective.debugLoggingOn() to enable client-side debug logging


    Will be migrated to github issues eventually

    • api
      • stable events api for creating events via REST (validation)
    • stash
      • aging of pull-requests
    • events
      • error handling LOAD_EVENTS
      • event-store: sliding window? Evict old events to keep memory from building up
    • chat
      • don't scroll to bottom automatically if user has scrolled up
      • set status (online/away)
      • set status automatically to idle
      • support @here, @channel, @everyone , @username
      • support "... is typing"
      • support drag'n'drop files
      • support copy/pasting and embedding images
      • support code snippets
      • detect and convert http links
      • append message clientside immediately, but implement "failed to deliver message" or similar if connection fails
      • security: allow plugins to format using HTML, but prevent XSS (see message.react)
    • ui
      • get a delicious design
    • create startupscripts


    Perspective is released under the MIT License.




    npm i perspectiveapp

    Downloadsweekly downloads








    last publish


    • avatar