Inspiration

All too often when we're at work or in school, we as tech guys end up creating small gadgets and utility scripts to automate tasks we don't want to do manually. However, oftentimes these utilities are used once and discarded, or forgotten in the dark recesses of your hard drive. This leads to inefficiencies as the same tools are created over and over again. Spellbook was borne out of a desire to solve that inefficiency by collecting all of your utility scripts in one place, so that the value of these small tools could be greatly expanded upon and preserved.

What it does

Spellbook, first and foremost, is a database for your local utility scripts. It keeps track of where your scripts are located, and how they're supposed to be used. It also allows for one to easily call upon these utility scripts via a simple but powerful interface reminiscent of tools like FastAPI and Postman, passing in your own parameters as easy as dragging and dropping files. On top of that, we also leverage Google's Gemini Generative AI to make it possible to describe automations in natural language, and have your utilities be combined agentically to make more versatile automatons.

How we built it

The backend was written using FastAPI, using MongoDB to store script location and metadata. The frontend is built on React, to be run in an Electron wrapper. AI queries are handled using the Gemini API.

Challenges we ran into

Figuring out how to agentically query the Gemini API was rather difficult due to the sheer amount of data that the API required to function. However, we managed to develop a workable agentic tool-based system for getting Gemini to call our functions.

Accomplishments that we're proud of

We're particularly proud of our integration of Gemini into this project, and while we didn't finish the project entirely, we're very proud of what we managed to accomplish with integrating Gemini and MongoDB into a single project. In the future, we'd like to polish Spellbook further to make it a truly seamless user experience.

Built With

Share this project:

Updates