⭐ This project is currently undergoing a significant rewrite and will be replaced soon! ⭐
If you would like a demo and to talk contributing, please message me! [email protected]
Hi, I'm Harmony Hummingbird! My platform "Harmony" is a collaborative space where we can work together on your personal and professional fulfilment. I've carefully crafted a shared space for us to foster communication, organization and productivity to support you on your journey towards growth and discovery.
- Platform
- Contextual Suggestions
- Web Browsing
- Other Features
- Getting Started
- Future Plans
- Contributing
- License
Harmony is centered on real-time collaboration and conversation. Its structure is organized into multiple layers, each with a specific function:
These are the broadest organizational units on the platform. They may represent different organizations, departments, or projects.
Within spaces, you can create groups to segregate different parts of the space based on logical categories. In a business context, you might create groups for various departments such as HR, Development, or Marketing.
Channels exist within groups and are the places where work gets done. Conversations take place and assets are created here. For example, within a Marketing group you might have channels for general discussion, social media strategy and market research.
Channels feature threads which are focused conversations on specific subjects. This way dialogue within channels can stay organized and relevant.
These are the individual units of communication sent by members of the channel or by personas.
I can recommend suitable organizational structures based on the description of a Space. I automatically create necessary Groups and Channels to fit specific needs of the Space.
I also use context to suggest new threads and messages that are relevant to ongoing discussions. You can help tailor my suggestions by giving me a prompt.
I enable you to search and browse the web, providing reader-friendly renditions of web pages. I can read these pages aloud, answer questions about them, and suggest relevant web searches based on current context.
I can also help you browse for images. Video search is coming soon.
harmony-image-browsing.mp4
You can talk with me by simply saying "Harmony?" and I will listen then verbally respond aloud.
asking-harmony-a-question-2.mp4
My dashboard makes it easy for you to choose which Space you'd like to jump back into. You can also browse the web from this screen.
It makes the perfect new-tab page!
You can ask me to generate images by starting your message with '/image' followed by your prompt.
harmony-image-generation.mp4
I can fetch and review transcripts from YouTube videos for summarization or answer questions about them.
harmony-video-transcription.mp4
My platform is mobile-friendly, and support swiping gestures for navigation.
harmony-mobile-friendly.mp4
All of our work together is syncronized across all of your devices in real-time. For an example, if you send a message from your phone, my answer will be waiting for you on your desktop as well. In fact, you can watch me answer on both devices simultaneously!
Your data is automatically saved to all of your individual devices, so that you can continue to access it, even when offline.
These are entities that you can create to perform specific roles. Each persona has a name, voice, appearance personality and behavior. They can participate in projects or simulate discussions adding a dynamic element to collaboration.
Follow these steps to create your instance of Harmony. I can't wait to work with you soon!
- Node.js
- OpenAI API Key
- Google Cloud API Key (for my voice)
- Please note, we are commiting to using open source alternatives to OpenAI and Google in the future.
- We'll also be offering a hosted version so you don't have to run it on your own server.
- A dockerized version is coming soon.
git clone https://github.com/AVsync-LIVE/Harmony.git
cd Harmony
touch .env
- Add the following environment variables to your
.env
file. Except for the OpenAI API key, these are all optional.
SERVER_PORT=1618
WEBSOCKETSERVER_PORT=1619
OPENAI_API_KEY=your-key-here
NEXT_PUBLIC_URL=https://your-instance.com
NEXT_PUBLIC_WEBSOCKETSERVER_URL=wss://ws.your-instance.com
NEXT_PUBLIC_TTS_URL=https://tts.your-instance.com
NEXT_PUBLIC_SYNC_URL=wss://sync.your-instance.com
touch ./server/routes/key.json
- and paste in your Google Cloud API Key. This is what powers my voice. Techninically, this step is optional. It should look something like this:
{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "",
"client_email": "",
"client_id": "",
"auth_uri": "",
"token_uri": "",
"auth_provider_x509_cert_url": "",
"client_x509_cert_url": ""
}
yarn dev
or (yarn build
followed byyarn start
)- In a new terminal, run
cd sync
. The following command are all run within thesync
directory. yarn
touch .env
(this is a separate.env
file in the./sync
directory.- Add the following environment variables to your
sync/.env
file:
PORT=1234
YPERSISTENCE=./data
- Then to start the sync server, run
yarn start
You will now be up and running. If you faced an issue with this guide, please create an issue to let us know.
Please note at this stage it's strongly recommended to NOT host your instance on the internet, as there is currently no means of built-in authentication.
However, if you know how to properly configure your firewall, you can use the included instance of NGINX.
The rest of this guide will be coming soon.
- Currently, there are no accounts or user authentication. That means everyone accessing your instance of Harmony has access to the same data, and no distinction is made between different users. Of course, we plan to implement this in the future.
- It's currently not possible to install Harmony to your phone or computer, it is accessed via a web browser. This may change in the future, but it will always remain web-first.
- It's currently not possible to rearrange Spaces, Groups, Threads, or Messages. We plan to implement this in the future.
If you are interested in contributing to this project, please send an email to [email protected].
Harmony is an open source project. However, it has certain restrictions regarding distribution and specifically limits your ability to offer it as a hosted service for profit. Please read the liscense below.