Show HN: Craft – 在虚拟机上运行 Claude Code,并整合所有工作文档
2 分•作者: Weves•6 天前
我发现代码代理在以下两方面表现出色:1. 仅使用 bash 命令(grep、glob、ls 等)就能在大型代码库中找到所需的一切;2. 基于它们的发现构建新事物(废话)。
如果将代码库换成你的工作场所文档呢? 设想一个 `Google_Drive` 文件夹、一个 `Linear` 文件夹、一个 `Slack` 文件夹等等。 在过去的一周里,我们一起构建了 Craft 来测试这个想法。
它是一个代码代理(使用 OpenCode 以实现模型灵活性)的界面,运行在虚拟机上,具有:
1. 你的公司完整的知识库,以目录/文件的形式呈现(保持同步)
2. 自由编写和执行 python/javascript 的权限
3. 能够为用户创建和呈现工件
演示:<a href="https://www.youtube.com/watch?v=Hvjn76YSIRY" rel="nofollow">https://www.youtube.com/watch?v=Hvjn76YSIRY</a>
Github:<a href="https://github.com/onyx-dot-app/onyx/blob/main/web/src/app/craft/README.md" rel="nofollow">https://github.com/onyx-dot-app/onyx/blob/main/web/src/app/c...</a>
事实证明,OpenCode 在处理文档方面做得很好。 工作场所应用程序也具有自然的结构(关于特定主题的 Slack 频道、团队的 Drive 文件夹等)。 并且由于每个文档的完整元数据都可以写入文件,LLM 可以定义任意复杂的过滤器。 在大规模应用中,它可以编写和执行 python 来提取和过滤(甚至可以重复使用经过验证的正确逻辑)。
换句话说,bash + 文件系统提供了比传统的 RAG 或 MCP 更灵活、更强大的接口,而当今更智能的 LLM 能够充分利用这一点。 这对于需要考虑数千(或更多)文档的聚合式问题特别有用。
当然,它还可以创建基于你公司文档保持更新的工件。 因此,如果你想要“一个仪表板来实时检查每次中断中有多少百分比是由每个后端服务引起的”或者只是“幻灯片,遵循 XYZ 格式,涵盖我下周在开发知识共享会议上要展示的主题”,它也可以做到。
Craft(和 Onyx 的其余部分一样)是开源的,因此如果你想在本地运行它(或尝试实现),你可以这样做。
快速入门指南:<a href="https://docs.onyx.app/deployment/getting_started/quickstart">https://docs.onyx.app/deployment/getting_started/quickstart</a>
或者,你可以在我们的云端试用:<a href="https://cloud.onyx.app/auth/signup">https://cloud.onyx.app/auth/signup</a>(你的所有数据都进入一个隔离的沙盒)。
无论哪种方式,我们都设置了一个“演示”环境,你可以在你的数据被索引的同时进行试用。 真的很好奇大家有什么想法!
查看原文
I’ve found coding agents to be great at 1/ finding everything they need across large codebases using only bash commands (grep, glob, ls, etc.) and 2/ building new things based on their findings (duh).<p>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.<p>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<p>Demo: <a href="https://www.youtube.com/watch?v=Hvjn76YSIRY" rel="nofollow">https://www.youtube.com/watch?v=Hvjn76YSIRY</a>
Github: <a href="https://github.com/onyx-dot-app/onyx/blob/main/web/src/app/craft/README.md" rel="nofollow">https://github.com/onyx-dot-app/onyx/blob/main/web/src/app/c...</a><p>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).<p>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.<p>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.<p>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.<p>Quickstart guide: <a href="https://docs.onyx.app/deployment/getting_started/quickstart">https://docs.onyx.app/deployment/getting_started/quickstart</a>
Or, you can try it on our cloud: <a href="https://cloud.onyx.app/auth/signup">https://cloud.onyx.app/auth/signup</a> (all your data goes on an isolated sandbox).<p>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!