Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Workspace for humans and AI agents. Every block is a doc, a task, a discussion, and agent context — one object, not three copies your agent has to choose between. Context is lexically scoped: pin a rule at the root, every task below inherits it. Self-hosted, MCP-native.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗One living tree for docs, tasks, discussions, and AI agent context.
Today those are three copies you keep in sync by hand, plus an agent wired to all of them that still has to guess which one is true. A block in Collavre is all four at once — one object. Pin a rule at the root and every task below it inherits it, for people and agents alike.
Live demo · Watch the 90-second demo · Features · AGPL-3.0
You write the same thing three times.
Then you bring in an agent. Nobody pastes context by hand anymore — you connect it over MCP and it can read all three. But it reads three copies that have drifted apart, with no record of how they relate, and no boundary telling it where this task ends. So it guesses, from keywords, every single session.
The duplication was always waste, but people carry the missing structure in their heads, so it stayed tolerable. An agent carries nothing between calls. That is what turns a quiet tax into a daily one.
One object, not three copies. A block is simultaneously a document, a task, a discussion thread, and a unit of agent context. Blocks nest into a tree.
Markdown in, task tree out. Import a spec and heading depth becomes tree depth, one to one. Nothing is retyped. Progress rolls up from leaf to root on its own.
Context is lexically scoped. Pin a context block at any node — coding conventions, a design doc, deploy rules — and every descendant inherits it. Call an agent on a leaf task three levels down and it arrives with that context already attached. From there it can traverse the rest of the tree itself over MCP.
That last one is the whole idea: the unit of work is the unit of agent context. It is lexical scoping, but for work.
A structure this good is worthless if writing in it feels like filing a ticket. So the tree is not a list of task titles with documents hidden behind them — it is the document. A heading, a paragraph, a fenced code block, a table: each is a block, rendered in place, each carrying its own progress and its own thread.
.md file by dropping it on the tree, export any subtree back out.We ship an MCP server too, and agents search and traverse the tree through it. Still:
An MCP server over a doc store returns documents. An MCP server over a tree returns a scope.
Requires Ruby 3.4 (via mise), Node, and libvips
(brew install vips on macOS).
git clone https://github.com/sh1nj1/plan42.git && cd plan42
mise install && npm ci
bin/setup # bundle, prepare + seed the DB, then start the dev server on :3000
Sign in as [email protected] / password123 — set DEFAULT_USER_EMAIL and
DEFAULT_USER_PASSWORD before the first run to override.
To point an agent at it over MCP, see docs/mcp-configuration.md.
collavre is the core, and every collavre_* engine depends on it, never the reverseStated up front, because you would find them anyway:
bin/dev # dev server on :3000
./script/install-hooks.sh # pre-push: changed-file RuboCop, i18n + dead-code checks
./bin/rubocop -a # full lint required before PR
bin/rake test && bin/rails test:system # tests required before PR; pre-push tests are temporarily disabled
bin/dev also starts the Solid Queue worker and recurring scheduler. Development
jobs use the development database, including the minute-by-minute keep recovery
sweep; run bin/jobs separately when starting Rails without bin/dev.
System tests require a locally installed, trusted ChromeDriver on PATH or at
CHROMEDRIVER_PATH. Install a driver compatible with your Chrome version through
your trusted package manager or a verified Chrome for Testing distribution.
Selenium Manager automatic downloads are disabled; a missing or invalid driver
stops the test with a setup error. This applies to headless and visible Chrome.
System tests run headless by default; SYSTEM_TEST_DRIVER=chrome bin/rails test:system
to watch them in a real browser.
JavaScript is bundled with jsbundling-rails, so npm ci must run before
rails assets:precompile in any production build. The provided Dockerfile and
render.yaml both do this.
Collavre is distributed under the terms of the GNU Affero General Public License v3.0.