What if, instead of a codebase, the files were all your workplace docs? There was a `Google_Drive` folder, a `Linear` folder, a `Slack` folder, and so on. Over the last week, we put together Craft to test this out.
It’s an interface to a coding agent (OpenCode for model flexibility) running on a virtual machine with: 1. your company's complete knowledge base represented as directories/files (kept in-sync) 2. free reign to write and execute python/javascript 3. ability to create and render artifacts to the user
Demo: https://www.youtube.com/watch?v=Hvjn76YSIRY Github: https://github.com/onyx-dot-app/onyx/blob/main/web/src/app/c...
It turns out OpenCode does a very good job with docs. Workplace apps also have a natural structure (Slack channels about certain topics, Drive folders for teams, etc.). And since the full metadata of each document can be written to the file, the LLM can define arbitrarily complex filters. At scale, it can write and execute python to extract and filter (and even re-use the verified correct logic later).
Put another way, bash + a file system provides a much more flexible and powerful interface than traditional RAG or MCP, which today’s smarter LLMs are able to take advantage of to great effect. This comes especially in handy for aggregation style questions that require considering thousands (or more) documents.
Naturally, it can also create artifacts that stay up to date based on your company docs. So if you wanted “a dashboard to check realtime what % of outages were caused by each backend service” or simply “slides following XYZ format covering the topic I’m presenting at next week’s dev knowledge sharing session”, it can do that too.
Craft (like the rest of Onyx) is open-source, so if you want to run it locally (or mess around with the implementation) you can.
Quickstart guide: https://docs.onyx.app/deployment/getting_started/quickstart Or, you can try it on our cloud: https://cloud.onyx.app/auth/signup (all your data goes on an isolated sandbox).
Either way, we’ve set up a “demo” environment that you can play with while your data gets indexed. Really curious to hear what y’all think!