multnelismainContact

An engineering team that builds its own tools, in the open.

multnelis is based in Ho Chi Minh City. We publish four tools we use in our own work: a data platform you host yourself, a harness that gets any repository ready for coding agents, a notes board that moves text between machines, and a web workspace for running coding agents.

Built for our own work first.

Each project started as something our own work needed. Every one is a public repository you can read, install, and file issues against.

based
Ho Chi Minh City
since
2025
public
4 projects
org
github.com/muitneliss →

What we build

Undercroft

muitneliss/undercroft →pre-alpha

Bring your business data into a platform you host yourself.

An immutable raw lake, declarative connectors, and a schema you define yourself. Raw data lands once, content-addressed and never overwritten; connectors are YAML, not code; every table above the lake is a dbt model you wrote. Multi-tenant and self-hostable. Pre-alpha: under active construction, nothing is stable yet.

Use cases

  • Collect every source in one place

    Pull HubSpot, Xero, Gmail and Google Drive into one store on your own S3 or MinIO, each tenant's credentials sealed.

  • Model it your way

    No business schema ships. Records land in one generic Postgres table; your dbt models, questions and dashboards sit on top.

  • Search everything at once

    One search box over records and document text, matching Vietnamese with or without tone marks.

  • Let agents work as you

    A CLI and an MCP server give Claude and other agents every procedure, signed in as you and never with more.

repo
muitneliss/undercroft →
site
undercroft.lowbit.link →
stack
TypeScript · Bun · Postgres · dbt · MinIO · MCP
license
MIT

Turn your team’s conventions into rules, lint and CI that coding agents follow.

Ymir is an agent skill for Claude Code, Cursor, Codex and other agents, installed with the skills CLI. It explores your codebase, asks you about one concern at a time, and records your decisions as a harness spec. Applying the spec generates the rules, lint, CI checks, wiki context and CLAUDE.md or AGENT.md. It writes no application code.

Use cases

  • Get an existing repository agent-ready

    Write down the conventions a team keeps in its head, so an agent works to them from its first session.

  • Keep the reasons on record

    Each choice is probed for its why, given a grounded recommendation, and saved with its rationale.

  • Back up and revert changes

    Applying backs up every file it overwrites, and one revert undoes the last apply.

repo
muitneliss/ymir →
site
skills.sh/muitneliss/ymir →
install
npx skills@latest add muitneliss/ymir
stack
Agent skill · TypeScript · Bun · skills.sh

Move text between your devices through a notes board at a name you choose.

Type a name, and whatever you paste there follows you to any machine: open the same name on a laptop, a phone or a server’s browser and the notes are there. It runs as one container, with its notes in a single SQLite file.

Use cases

  • Move text between machines

    Paste a command, a link or a log on one device and copy it on another, without email or chat.

  • Keep the snippets you reuse

    Pin the notes you come back to, colour them, and filter by colour or search.

  • Read code as code

    Switch a note to Markdown to render headings, links and syntax-highlighted code blocks.

repo
muitneliss/text-transporter →
image
ghcr.io/muitneliss/text-transporter
stack
Next.js · React · SQLite · Docker

Run Claude Code and Codex from a web workspace built for long sessions.

Kanna is a web UI for the Claude Code and Codex CLIs that you run on your own machine. Tool calls, diffs and plans read as one transcript; every chat is kept in an append-only log and can be resumed; each piece of work can get its own git worktree. It runs on macOS and Linux and installs with Bun.

Use cases

  • Give every task its own branch

    On a kanban board, one card is one branch, one git worktree and one chat, so agents on different cards never touch each other’s files.

  • Work toward a goal unattended

    Give a loop a goal and a verify command, and it keeps handing out the next step until the command passes. Recurring prompts run on a cron schedule.

  • Delegate to named subagents

    Define subagents with their own instructions; the main agent hands them work, in the background if you like, and picks up the result.

  • Choose the model per chat

    Switch between Claude, Codex and OpenRouter per chat, and rotate a pool of Claude accounts when one reaches its rate limit.

repo
cuongtranba/kanna →
site
kanna-wiki.lowbit.link →
install
bun install -g @cuongtran001/kanna
stack
TypeScript · Bun · React · Claude Code · Codex · MCP

How we work

  1. Own the data and the stack.

    Undercroft is self-hostable and MIT-licensed; Text Transporter is one container and one SQLite file. What we build runs where you decide.

    undercroft · text-transporter

  2. Write the rules down, for people and agents.

    Our main repositories carry their conventions as agent instructions and skills, so a coding agent works under the same rules as a person. Ymir exists to write that harness for any repository.

    AGENTS.md · skills

  3. Ship small, in the open.

    Work lands through pull requests with CI, and Undercroft, Ymir and Kanna cut every release with release-please, changelog included.

    pull requests · release-please

Use it, fork it, tell us what breaks.

Every repository takes issues on GitHub. For anything else, one address reaches the whole team.