Magick is a visual IDE for no-code data pipelines and multimodal agents. Magick can connect to other services and comes with nodes and connectors well-suited for intelligent agents, chatbots, complex reasoning systems and realistic characters.
- Powerful graph-based IDE for complex data pipelines
- Realtime agents which can perform actions on their own, interact with users and other agents in different modalities with a unified memory and self
- Social connectors to Discord, Twitter and Twilio -- Zoom, Google Meet, Reddit, Slack connectors will be available soon as plugins!
- Search Google, Wikipedia and the Semantic Web
- Many included powertools, including voice and image generation and vector search
- Graphs can be embedded in subgraphs and shared for rapid community development
Powerful enough for wizards. Easy enough for mere mortals.
First, clone and set up Magick
git clone https://github.com/Oneirocom/Magick
cd Magick
npm run dev
Note: Most Node projects require npm install
- With Magick, dependencies will automatically be installed for you
There are a few things to keep in mind while this project is actively being worked on.
NOTE: If you're using Microsoft Windows, required sqlite extensions won't work, please use
postgres
.
Simply add a relative or absolute path to your sqlite file in the .env
, run npm run migrate
.
There are two sqlite extensions used, sqlite-vector
and sqlite-vss
based on the docs, on Linux machines, you'll have to install some packages to make it work:
sudo apt-get update
sudo apt-get install -y libgomp1 libatlas-base-dev liblapack-dev
No extra steps for MacOS.
Please be aware Magick is under heavy development and changes can cause your DB to be wiped. Back up your spells via export regularly.
Magick can connect to a test database on Supabase. It will get you going, but it will likely be wiped regularly and is not a good storage for your spells.
just enable the pg database in the .env
file.
To deploy your own database, we suggest using Supabase or another Postgres database. The current setup for events and documents requires the pgvector
extension to be enabled.
The following documents should help you with setup:
- https://supabase.com/docs/guides/database/connecting-to-postgres
- https://supabase.com/blog/openai-embeddings-postgres-vector
To initialize a new database, you will probably need to call migrate. Magick uses Feathers 5 for backend, which in turn uses Knex for making database queries. To migrate the database, cd to apps/server and run npm run migrate
.
You will need to change the connection
property in feathers config. We will offer a better database configuration experience in the future, for now we suggest find and replacing any URLs that point to the database (ctrl f postgresql://
)
Developing locally, it can be very helpful to have google chrome accept all self signed cetificates coming from localhost. To do this, simply paste the following snippet into chromes URL bar and enable the feature:
chrome://flags/#allow-insecure-localhost
Michael 💻 📦 💼 |
M̵̞̗̝̼̅̏̎͝Ȯ̴̝̻̊̃̋̀Õ̷̼͋N̸̩̿͜ ̶̜̠̹̼̩͒ 💻 📦 |
alextitonis 💻 |
Daniel Adams 💻 |
Anthony Burchell 💻 📝 |
jin 📝 |
Shivaditya Shivganesh 💻 |
khalildh 💻 |
Pigloo 💻 |
avirtualfuture 💻 |
Alexandre Ferreira 💻 |
Matei Anghel 💻 |
The original source code was made by the following contributors to Thoth, which is archived here
Jakob 💻 |
Sean Gillespie 💻 |
Michael 💻 |
Preston Gull 💻🎨 |
Nick Walton 💻 |
Mitchell Gordon 💻 |
?/janus 💻 |
Alan Walton 💻 |
We are building Magick as a community in the open on Discord. If you are interested in contributing to the project, we'd love to have you.
Join us here: https://discord.gg/magickml