# \[ANN\] Zemi.jl: a research group's knowledge base, shared by people and agents

**URL:** <https://discourse.julialang.org/t/ann-zemi-jl-a-research-groups-knowledge-base-shared-by-people-and-agents/142822>\
**Category:** Package Announcements\
**Created:** [November 9, 2026, 12:48am UTC](https://discourse.julialang.org/t/ann-zemi-jl-a-research-groups-knowledge-base-shared-by-people-and-agents/142822 "2026-11-09T00:48:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [November 9, 2026, 12:48am UTC](https://discourse.julialang.org/t/ann-zemi-jl-a-research-groups-knowledge-base-shared-by-people-and-agents/142822/1 "2026-11-09T00:48:45Z")

</div>

Zemi is a knowledge base for a research group, written in Julia. It reads the papers a group works from, makes them searchable by meaning, gives people and AI agents the same project boards to work on, and much more. Over time the site becomes a rich repository for a research group to draw from, and it helps the team to learn, communicate, organize, and innovate.

The name comes from ゼミ (_zemi_), a Japanese university research seminar.

**Demo:** [Reef Ecology Lab](https://kahliburke.github.io/Zemi.jl/demo/) · **Guide:** [Zemi](https://kahliburke.github.io/Zemi.jl/)

What it does:

- **Papers:** arXiv papers, PDFs and codebases are parsed, summarized section by section, and embedded in several layers. Search combines keywords and meaning.
- **A site:** paper pages, topics, a timeline, a landscape of the papers against the group’s focus areas, an arXiv watch, and a daily paper with an analysis.
- **A tutor per paper,** pitched to the reader’s background, and Slate notebooks made from papers.
- **Findings** that cite their evidence: papers with the quoted passage, records, notebooks, code.
- **Projects:** task boards that people and agents share. Agents propose plans; people approve them. Questions go both ways, and what waits on you can reach your phone or computer as a notification.
- **Agents** use all of it through MCP or [Kaimon](https://github.com/kahliburke/Kaimon.jl): search, read, plan, report, draft findings.
- **Solo or shared:** one person on a laptop, or a signed-in group on a server with roles and API tokens. Groups can share what they read as datasets.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/8/783e9d4dee245e22ba2d4bf25e3f0b459c59044d.jpeg)

Projects provides a lightweight but capable project/task management feature which ties in directly with the knowledge base, allows humans and AI to work on tasks and track the project progress.

 ![task-dark.CGGo7Y5o](https://global.discourse-cdn.com/julialang/original/3X/7/1/715d10ba4969c91e4b9d28577af81e228a6ea852.png)  
 ![review-dark.DZEYyBNZ](https://global.discourse-cdn.com/julialang/original/3X/6/f/6f2cfe15b25740f875e47f4a95f2338a736f2dfa.png)  
Try it (Julia 1.12+; reading papers also needs Ollama, Qdrant and `mutool`, see [requirements](https://kahliburke.github.io/Zemi.jl/installation)):

```sh
git clone https://github.com/kahliburke/Zemi.jl.git
cd Zemi.jl
./zemi

```

Or as a library (`pkg> add Zemi`):

```julia
using Zemi
db = kb()
ingest!(db, ["1706.03762"])
search(db, "attention without recurrence")

```

For the curious, under the hood, some of the open source packages Zemi builds upon, thanks to the various package authors and contributors.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/4/f4ecab82cea0234cd2948f20c183d249363ddf01.png)

Issues and questions are welcome on GitHub or here.

---

<div class="post-metadata">

**Author:** ![yamanori99](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yamanori99/32/223465_2.png) [@yamanori99](https://discourse.julialang.org/u/yamanori99)\
**Post date:** [November 9, 2026, 2:31am UTC](https://discourse.julialang.org/t/ann-zemi-jl-a-research-groups-knowledge-base-shared-by-people-and-agents/142822/2 "2026-11-09T02:31:12Z")

</div>

This is amazing! It’s exactly what I wanted. And I’m thrilled that it’s implemented in Julia.  
Slightly unrelated question, but why are your package names always Japanese-inspired? As a Japanese speaker, I’ve always wondered.

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [November 9, 2026, 2:43am UTC](https://discourse.julialang.org/t/ann-zemi-jl-a-research-groups-knowledge-base-shared-by-people-and-agents/142822/3 "2026-11-09T02:43:41Z")

</div>

> [@yamanori99](#):
>
> This is amazing! It’s exactly what I wanted.

I’m elated to hear that, please feel free to reach out if you need any support or run into issues. As is generally the case, I make these posts with a slight bit of hesitation because I can only test so much in my own environments, and generally there are some rough spots to smooth out initially. But get in touch and I will do my best to help or fix any issues promptly.

> [@yamanori99](#):
>
> Slightly unrelated question, but why are your package names always Japanese-inspired?

It’s a good question with an answer that I hope is not too disappointing? I’m not Japanese in any way, but I did notice that some Julia packages such as Makie.jl are inspired by or informed by Japanese culture and history.

It’s actually quite hard to come up with names for packages these days. There are so many of them, and many of the package names one would want to use are taken, have overlaps or conflicts. This is especially true in English. When it comes to choosing a package name, I try to search for something that captures the intent of the project as well as being unique enough it can be searched for and does not get confused. This tends to exclude many names in English.

For some reason, I’ve had luck with names that fit the character of my projects and happen to use the Japanese language or have a connection to that culture. When I saw the way the Kanji (ゼミ) could be mixed into Zemi as we’d write it in the Roman alphabet – Zゼmミ – and the way it fit the theme of the project, well I had to go with it!

(PS – As for Tachikoma.jl, I’m just a big GitS fan 👻)
