PyPI 上的 misaka 是无关项目,必须从该仓库安装;需预先装好 uv、git、ripgrep、fd 和 poppler;不要在根目录运行,应在 Documents 下的工作文件夹中运行。
Misaka-Agent
Luciole-StudioApache-2.0活跃维护面向人文社科研究的多智能体系统,能自动完成文献综述、史料梳理等研究任务,适合历史、文学与计算社会科学场景。
A multi-agent research system for the humanities and social sciences.
uv tool install "misaka[providers] @ git+https://github.com/Luciole-Studio/Misaka-Agent.git"
mkdir ~/Documents/my-research && cd ~/Documents/my-research
misaka setup
misakaREADME 未说明显存或 GPU 要求;支持 macOS、Linux、Windows(x86_64 或 arm64),推荐 macOS,需访问模型提供方(API key 或 ChatGPT/GitHub Copilot 订阅)。
面向人文社科的多智能体研究系统,用 DAG 组织研究分支并做症状式阅读
面向人文社科研究的多智能体系统,能自动完成文献综述、史料梳理等研究任务,适合历史、文学与计算社会科学场景。
核心能力
- Last Order 协调者拆解问题并制定研究计划
- Sisters 专家按技能分层加载,各自带模型与技能
- 红队审查结论中未言明却依赖的前提
- 研究分支构成 DAG,逐层展开并合并汇合路径
- 引用可追溯到页码与字符偏移,过程存为 git 仓库
容易踩的坑
- v0.19.27最新正式版2026-11-09 · 2026-11-09 16:59 UTC
On Windows, a research run that opens new nodes no longer fails with "claim refused: runner identity mismatch".
Update
misaka update --applyAn install from a release archive is updated by running the installer again:
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | shirm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iexRestart MISAKA after updating. A run that failed this way can be resumed with
misaka research --resume RUN_ID: the failed nodes are retried. Nothing needs to be cleaned up by hand first.Fixes
- On Windows, a research node claims its own work. A venv's
python.exeon Windows is a launcher that starts the real interpreter as its own child, and the run recorded the launcher's process. Every node below your question then refused to start:superseded execution: claim refused: runner identity mismatch: row holds pid … this process is pid …, and a run that opened new nodes failed. A node now recognises the launcher that started it, checked by its start time and its program, and records itself. Reproduced on Windows 11 with auv toolinstall: before, both new nodes of a depth-1 run failed and the run failed; after, both ran and closed, and the run finished.
Known issues
- Research windows in the panel were not tried on Windows. The fix was tried with
misaka researchfrom the command line. A node in a panel tab goes through the same claim, and its pane also reports the launcher, but that path was not run. - A relay that renames tools can stop
/research. Sendingtool_removalthrough a relay that renamestoolsbut not the block returns 400tool_reference_unresolvedat the first phase change. SettingsupportsMidConvoToolChangestofalseon that model inmodels.jsonavoids it; tool changes then rewrite the prompt cache and drop earlier thinking.
Internal
- Tests that claim a row from behind a real launcher process, and that refuse a claimed node's own child holding the same key, a duplicate's claim landing between the read and the write, and the launcher's PID with another start time. Each of six ways to break the fix is caught by them, on macOS and on Windows.
- Tried on Windows 11 with Haiku 5.5 (low) through a relay, depth 1, with and without the fix.
macOS passes the full suite. The new tests pass on Windows 11. The Linux and Windows archives build and pass the packaging tests in CI; the full suite was not run on them for this release.
- On Windows, a research node claims its own work. A venv's
- v0.19.262026-11-08 · 2026-11-08 14:07 UTC
查看更新说明
A codemode switch for each kind of agent,
misaka configback for extensions, prompts and themes, and a saved "do not trust" that holds.Update
misaka update --applyAn install from a release archive is updated by running the installer again:
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | shirm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iexRestart MISAKA after updating. Nothing changes until you set a switch: Last Order and the Sisters still start without codemode, and sub-agents with it. To change that, use the three Codemode rows in
/settings, or setroles.<kind>.codemodein~/.misaka/settings.json.Changed
- Codemode has a switch for each kind of agent.
roles.lastOrder.codemode,roles.sisters.codemodeandroles.subagents.codemode, with a row for each in/settings. Last Order's covers her window, research windows, the reader and her contact sessions; the Sisters' covers their windows, cards and contact sessions; the sub-agents' covers sub-agents without a tool list of their own. A switch that is set wins overdefaultToolsfor its kind. Unset, each kind does what it did: on this machine no Last Order or card session had codemode, and 147 of 163 sub-agent sessions did. misaka configis back. It lists the built-in extensions and the extensions, prompts and themes the home and the settings name. Space turns one on or off in the home'ssettings.json; Tab ormisaka config -ledits a trusted project's file instead. Skills stay withmisaka skills.- A card run without the panel takes codemode from the Sister's switch, as a card in the panel does. It used to get codemode with every other tool.
Fixes
- A saved "do not trust" holds for a project with nothing in it that needs trust, such as one with only an
AGENTS.md. It was trusted anyway, and extensions were told so (pi 1.5, #10947). - On Windows, project trust ignores letter case. A project saved as
C:\Users\me\xis found fromc:\users\me\x, and the walk up to the home folder stops there whatever its case.
Known issues
- A codemode switch is for new sessions. The window you change it in keeps its tools, and a resumed session keeps the tools its transcript declared.
- A trusted project's own
roleshides the home's./settingswrites the home's file only, so in such a project a row seems to change nothing. - A card run without the panel was not tried with a live model after this change; that path is covered by tests only.
- A relay that renames tools can stop
/research. Sendingtool_removalthrough a relay that renamestoolsbut not the block returns 400tool_reference_unresolvedat the first phase change. SettingsupportsMidConvoToolChangestofalseon that model inmodels.jsonavoids it; tool changes then rewrite the prompt cache and drop earlier thinking.
Internal
- pi 1.5's tests for the config selector, path comparison and the saved trust decision, ported.
- Tests for the codemode switches: new and resumed sessions of each kind, sub-agents, forks, cards, and the
/settingsrows. - Tried with Haiku through a relay in scratch homes: a Sister with her switch on and sub-agents off, the defaults, and Last Order calling codemode.
macOS passes the full suite. The Linux and Windows archives build and pass the packaging tests in CI; the full suite was not run on them for this release.
- Codemode has a switch for each kind of agent.
- v0.19.252026-11-08 · 2026-11-08 07:30 UTC
查看更新说明
Scans read by MinerU, stood up first and given an outline; one reading for one book; a card's working files kept out of the corpus; and an LCM search that finds what agents ran.
Update
misaka update --applyAn install from a release archive is updated by running the installer again:
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | shirm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iexRestart MISAKA after updating. To read scans with MinerU, run
misaka setup documents: it installs MinerU with uv when you say so and sets what reads a scan. By hand,uv tool install mineru, andtesseractto stand sideways pages up. MinerU fetches its models, 1.4 to 2 GB, the first time it reads. A document already indexed keeps its text; a scan indexed from now on is read the new way.Changed
- MinerU reads scans where it is installed.
documents.ocr_enginechoosesauto,mineruorocrmypdf;auto, the default, takes MinerU wheremineru-kitis installed and ocrmypdf otherwise, and a program named there is never swapped for the other. A 1914 gazette that ocrmypdf read as 7% Chinese characters reads as 95%. MinerU runs on this machine with its reporting off, 25 pages a run, so a failed run costs only those pages. - It reads at its strongest by default.
documents.mineru_tierisadvanced, which also reads handwriting, at about 12 to 19 seconds a page on an Apple M4: a 400-page scan takes one to two hours, anddoc_addwaits for it.basictakes about a tenth of the time and reads handwriting and old Japanese much worse. - Pages lying on their side are stood up first. Handwritten plates in a scanned book often lie sideways, and MinerU reads them that way as a picture or as invented text. tesseract's orientation detection says which pages lie on their side and MinerU's
basicsays which way up: no upright page of 159 was turned, and six of nine sideways ones were stood up the right way. Without tesseract nothing is turned. - A scan gets an outline from its headings. A scanned PDF without bookmarks used to have only its pages. The headings MinerU marks now make its outline; a PDF's own outline is kept.
- A card's working files stay out of the corpus. Every file a card changed was indexed, so a Sister reading a scan page by page left one document per page: 29,000 of one project's 33,000. From a card's folder the corpus now takes what stands directly in it,
sources/andreports/, and PDF, DjVu, EPUB and Office files anywhere in it.doc_addstill takes any file. - An LCM search reads tool calls too. What an agent did sits in its tool calls, 98% of what agents wrote on this machine, and 13 of 16 searches that found nothing were for words in them.
lcm_grepnow finds a command, an address or text written to a file, andlcm_expandopens the row with its calls. misaka setup documentsinstalls MinerU and sets what reads a scan. It offersuv tool install mineru, says when the command is not onPATH, offers the models right after an install, and asks for both settings with Enter keeping each.doc_addsays it reads scans, so a Sister indexes a scan rather than running OCR of its own.
Fixes
- One book is read once. Two cards handing in the same scan at the same moment both ran its OCR to keep one result. The second now waits and links to the first one's document.
Known issues
- A MinerU run hung once. One run of 40 sat out its whole 15-minute limit while three others finished, and did not recur in 36 more. A run that hangs now gets one more chance; the cause is not known.
- Several
advancedreadings at once are heavy. Four at once finished, each three to four times slower, and left 0.6 GB free on a 16 GB Mac. - Some sideways pages are not found. Three of nine were not, and are read as they lie.
- **A scan's outline can
- MinerU reads scans where it is installed.
- v0.19.242026-11-07 · 2026-11-07 15:21 UTC
查看更新说明
A project cache that lasts and says who spoke, cards that can hand in their work, and sources that stay where they were saved.
Update
misaka update --applyAn install from a release archive is updated by running the installer again:
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | shirm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iexRestart MISAKA after updating. The LCM cache moves to format 3 and rebuilds itself the first time a project opens, so a large project takes longer on that first open.
Changed
- The LCM cache outlives its processes. It used to go when the last process in a project exited, so finished work could not be searched and every reopen was a rebuild. A reopen now checks each session's rows against its file, and a session that does not match has only its own rows rebuilt.
misaka lcm clearremoves the cache. - Images stay in the session file. The cache held every image as base64. Rows now hold a marker that names the image, and a large project's cache went from 5,373 MB to 286 MB.
- The archive says who spoke. A row in the LCM copy is now
user,noticeoragent:<sender>, so a reminder or a Sister's mail can no longer become the focus of a summary. A research node's Last Order is recorded aslast-order@<node>. What the model is sent does not change.lcm_grepaccepts these roles; an exact filter does not match a batch with several senders. - Every card has an output folder. A card gets
outputs/<id>/unless its owner gives it one, so an ordinary card with a## deliverablecan now hand it in. A deliverable must have the contract's exact file name. - A file saved under a card's
sources/stays. A bundle rebuild used to remove the whole folder, and agents keep real material there. It now removes only what the last build placed, and the card registers the rest. Files already lost are not recovered. doc_findlists every match. Stopping at ten read the same as there being ten. A 200 KB guard says how many matches it shows.doc_readtakes a path and starts at page 1. It accepts the path of an indexed workspace file, and with neithernodenorpagesit reads from the start, one window per call.- The tool loadout follows pi 1.5. A resumed branch activates the extension tools it never mentioned, and a reorder no longer changes the prompt.
Fixes
- A summary asks for no output limit. Adaptive thinking spends the same limit as the text, so most summaries on a real run were cut short, and one with nothing left for the text opened the route's circuit for five minutes.
- A research window keeps the board tools. Last Order's window takes them off and gives them back the way pi's plan mode does.
- A Last Order with no window reads its mail.
misaka researchopened it without a mailbox, so a card's message woke the contact session outside the run. - A summary frame is never rewritten. Rewriting it broke the prompt cache and replaced the summarizer's hint with a machine one.
- Old checkpoints can be repaired.
misaka lcm repairshows which checkpoints would be marked and changes nothing.misaka lcm repair --applycopies each file to~/.misaka/state/lcm-repair-<time>/first and skips live sessions.
Known issues
- A relay that renames tools can stop
/research. Sendingtool_removalthrough a relay that renamestoolsbut not the block returns 400tool_reference_unresolvedat the first phase change. SettingsupportsMidConvoToolChangestofalseon that model inmodels.jsonavoids it; tool changes then rewrite the prompt cache and drop earlier thinking.
Internal
- Tests for context edits against the LCM copy, for
sources/, and fordoc_findanddoc_read.
macOS passes the full suite. The Linux and Windows archives build and pass the packaging tests in CI; the full suite w
- The LCM cache outlives its processes. It used to go when the last process in a project exited, so finished work could not be searched and every reopen was a rebuild. A reopen now checks each session's rows against its file, and a session that does not match has only its own rows rebuilt.
- v0.19.232026-11-02 · 2026-11-02 19:08 UTC
查看更新说明
One
mcp.jsonthat every role connects,misaka mcpthat acts for the role running it, and MCP fixes from pi 1.4 and 1.5.Update
misaka update --applyAn install from a release archive is updated by running the installer again:
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | shirm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iexRestart MISAKA after updating.
Changed
- A global
~/.misaka/mcp.jsonthat every role connects. Each role used to connect only the servers in her ownprofiles/<role>/mcp.json, so a server every Sister uses had to be added, and signed in to, once per role. MISAKA now reads pi's three layers: the global~/.misaka/mcp.jsonfor every role, Last Order included; the role's own file over it, whose entry replaces a global one of the same name, or with onlyenabled,exposureortoolExposurechanges it for her alone; and a trusted project's.misaka/mcp.jsonover both. A global server's sign-ins are shared by every role; to sign in with an account of her own, a role defines the server in her file.misaka mcp add -gwrites the global file,misaka mcp listnames the layer each server comes from, and/mcpoffers Enable for this role and Disable for this role for a global server. Role files you already have keep working as they are. misaka mcpacts for the role whose process runs it. Run from a Sister's bash tool, card or DM,add,loginandremovechanged Last Order's servers and sign-ins; they now change hers, andliststarts her servers the way her sessions do.--asstill names a role explicitly.
Fixes
- An
mcp.jsonsaved with a byte order mark is read. A file from Windows Notepad or PowerShell 5 was rejected whole, and none of its servers appeared (pi 1.4). - MCP sign-in opens only http and https addresses. A server's OAuth metadata could name a
file:or custom-protocol address, which was handed to the system to open (pi 1.5). - MCP connections behave as pi's do under Node. On Windows, a server's
enventry spelledPathreplaces the inheritedPATHinstead of losing to it; a header value with a character such as "é" connects; and closing the connection to an HTTP server finishes even when the caller stops waiting.
Internal
- Bundled extensions say which roles get them with
ROLES, as MISAKA's core entries do. Theextensions/last_order/andextensions/sisters/folders are gone, and reading mode is atextensions/reading/. Every role and kind of session loads the same extensions, with the same tools, as before.settings_manager.ROLE_KEYSis nowROLE_SETTING_KEYS, soROLE_KEYSnames only the roles.
macOS, Linux and Windows pass the full suite.
- A global
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Break the question down with Last Order, the coordinator, and refine the research plan; send each branch of the inquiry to Sisters, specialists who report, liaise and consult; gather their reports, read them and write; defend the conclusion before the reviewers; and turn whatever it cannot cover into new research. Graph algorithms manage the graph of research branches, and the final report arrives in your project folder as a research article, every citation traceable.
Core design
Quick start
uv tool install "misaka[providers] @ git+https://github.com/Luciole-Studio/Misaka-Agent.git"
mkdir ~/Documents/my-research
cd ~/Documents/my-research
misaka setup # sign in, choose a model, create your first two Sisters
misaka # start MISAKA and type /research
MISAKA runs on macOS, Linux and Windows (x86_64 or arm64); macOS is recommended. It requires
uv, git, ripgrep,
fd and poppler, and access to a model provider: an API key, or a
ChatGPT or GitHub Copilot subscription. Claude accounts can also sign in, with that usage billed
by Anthropic per token as extra usage. Install from this repository: the misaka package on PyPI
is an unrelated project.
Each GitHub release also has a prebuilt archive for those architectures. The archive includes
uv, git, ripgrep (rg), fd and poppler (pdftotext); running misaka puts them on PATH for
that process. MinerU, ocrmypdf, DjVuLibre and LibreOffice stay optional and are not in the archive.
curl -fsSL https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/Luciole-Studio/Misaka-Agent/main/scripts/install.ps1 | iex
brew install luciole-studio/tap/misaka and winget install Luciole-Studio.Misaka use the same
archives once the tap and the winget package are published. release/README.md
describes the archive layout and those publish steps.
Run MISAKA in a working folder under Documents (such as ~/Documents/my-research above),
never in the root directory.
Getting started covers installation step by step and walks you through a first research question.
Research: /research
The plan's ready! Misaka Misaka starts the moment you say so, says Misaka Misaka, holding it out with both hands.
/research is the core of MISAKA. A run takes one question and explores the different ways it
could be answered. Your question is the first node: Last Order agrees the plan with you, the
Sisters research it, and Last Order writes the conclusion; a red team then reviews that conclusion
and brings out the possibilities it set aside. Errors and gaps are corrected within the node,
while genuine alternatives resting on different premises open as new nodes, each with its own
Last Order, Sisters and red team. The run thus unfolds level by level into a research graph and
concludes in a research article.
Starting a run
In Last Order's window, type /research. A picker confirms nine parameters in turn, then takes
your research question.
| Parameter | Meaning |
|---|---|
| Research depth | how many levels of alternatives may open beneath the question |
| Node parallelism | how many nodes run at the same time |
| Card parallelism | how many cards each node runs at the same time |
| Follow-up rounds | how many further rounds of cards may follow the first |
| Revisions | how many times a conclusion may be revised in each review loop (the red team's, then the divergence review's) |
| Node limit | how many nodes the run may hold, the root included |
| Plan approval | whether plans wait for your consent |
| Compaction threshold | the share of the context at which conversation is compressed, for this run only |
| Output limit | the longest reply a model may write, for this run only |
Parameters and question may also be given on one line, as in
/research --depth 2 --max-nodes 12 QUESTION. Parameters left unspecified take their defaults:
depth 3, four nodes and four cards at a time, two follow-up rounds, two revisions and a limit of
30 nodes. From the shell, misaka research accepts the same parameters. A running run's
parameters are changed with /research limits --sister-parallel 2 (and the other options).
Inside a node
Every node, your question included, passes through the same seven stages:
- Plan. The plan is a research design. It establishes what the question actually asks and what else it could mean, identifies untested premises, sets out the evidence, methods and sources required together with their limits, and justifies each Sister's assignment. Each task receives its own card; a coverage table maps every sub-question, actor and dimension to the cards serving it, so that a gap appears as an empty cell; and the red team is appointed here. Where the question admits mutually exclusive ways of answering it, the plan may record a decision with at least two options and their premises.
- Cards. The Sisters, and allies such as Claude Code, work their cards in parallel in separate sessions, declaring each finding: the claim, its type (fact, inference, interpretation or value judgement), the file and page it rests on, and the quotation. Once the cards return, Last Order may send out further rounds within the follow-up limit.
- Conclusion. Last Order studies the deliverables in full and writes the conclusion: shared and competing findings, key evidence and counterevidence, and the limits of the methods; the premises the conclusion rests on and what each gains and gives up, what the materials could not reach and whose voices are absent; and how it answers the node it came from and its rival options. A conclusion may be a position that accepts stated costs, or the dissolution of the question. Factual errors found in an earlier node are recorded as errata, shown beside the original conclusion in every node below it and in the final report.
- Red-team review. The red-team Sister studies the conclusion, the plans, the evidence, the graph and Last Order's reasoning. She checks the facts, raises gaps, tests whether the conclusion answers its parent and its rivals, and identifies what the conclusion leaves unsaid yet relies on.
- Response to review. Last Order gives each material objection exactly one response: revise, rebut, concede a cost, refer it to the node that owns it, park it, or take it to a decision. Before answering an objection about a card's material she can ask the Sister who wrote it and hear her out. Where something is revised, the conclusion is issued in a new version and returned to the same red team, until nothing material remains or the revisions are exhausted.
- Divergence review. Once the red team's loop is over, the same Sister conducts a divergence review in a fresh session. She separates possibilities not taken, which rest on different premises, from gaps that any answer must fill, and brings out the presuppositions behind each of the conclusion's choices and what each gains and gives up. Last Order fills or answers every gap within the node; each version that fills one is reviewed again, until no gap is left or the revisions are exhausted.
- Decision. Each possibility not taken is recorded as an option to open, as already covered, or as declined with a reason. A presupposition on which the answer depends may itself become a fork: the node opened for it examines whether it holds, and how the answer changes if it does not.
How the graph grows
The run proceeds level by level: every node at one depth finishes before the next depth begins. Between levels, Last Order surveys the whole graph and reconciles it:
- Waiting options open as new nodes; options that ask the same question are merged into one node, researched once.
- Lines that reach the same place by different routes may be joined and carried forward by a new node. At the join they confront each other: what can be integrated is integrated, and where they cannot be reconciled the disagreement is drawn sharply.
- Relations between nodes (convergence, divergence, resonance, appropriation and displacement) are recorded for the final report.
A paths list records every possibility raised in the run and what became of it, so that each is opened only once. A new node forks from the session of the node it came from and inherits the history of its question.
Taking part and following a run
- Plan approval. Every plan, the reconciliations between levels included, can wait for your consent, given in ordinary conversation. Plans may instead proceed automatically, but a plan that changes the question itself always waits for you. You may also skip a node, cancel a follow-up round or stop the run.
- Conversation at any point. Each node has its own tab in the panel, where you can speak with that node's Last Order at any time.
- Commands and recovery.
/research statusshows progress,/research stopends the run with a partial report, and/research resumeresumes a stopped or failed run. A failed card is retried up to three times; when a node fails, the rest of its level continues.
The final report
When every node has closed, Last Order writes a survey of each node, a draft report, an independent red-team review of the draft and the final version. The report is a research article for readers in the humanities and social sciences, written in the language of the question, with a title, abstract and keywords, an introduction, argued chapters and a conclusion. Notes and a bibliography carry its traceability; the appendices record every line of inquiry, the costs the answer accepts together with errata and paths not taken, the materials used, and the handling of the review. The theses, arguments and connections between lines are drawn from the research materials: what can be integrated is integrated, and positions whose premises cannot be reconciled are kept distinct.
The research guide covers every stage in full.
Context and materials for humanities research
The materials of humanities and social science research are often voluminous and multilingual, and their provenance must be verifiable; together these exceed what a single model's context window can hold. MISAKA addresses the following problems by design.
| Problem | Approach |
|---|---|
| Long works exceed the capacity of the context window | PageIndex builds a hierarchical chapter index of long documents, which are then read on demand by section or page range |
| Context compression over a long inquiry distorts earlier material | LCM summarises earlier conversation hierarchically, each summary traceable to the original text; all sessions in a project share one retrieval index |
| Skill and tool instructions consume the coordinator's context | Skills and tools are assigned to Sisters by specialty, and cards run in separate sessions; Last Order's context is reserved for the materials submitted to her |
| Citations are hard to verify, and sources may be fabricated | Quotations are located to the page and character offset; conclusions cite only sources actually read, and source lists and original files are archived with them |
| Scanned documents, DjVu and multilingual materials | OCR in Chinese, English and Japanese, DjVu and legacy Office formats; plain text is structured by headings such as CHAPTER or LIVRE |
| Model output gravitates toward prevailing views | Disciplinary coverage maps and literature scans mark research gaps, and the divergence review proposes directions not taken |
PageIndex: hierarchical indexing and reading on demand
- Each project keeps its own document index. Documents of 20 pages or more receive a hierarchical table of contents giving the page range of each section.
- An agent first consults the outline (
doc_outline) and then reads by section node or page range (doc_read), so that only the required text enters the context. - For PDF and DjVu a page is a page of the file, counted from 1, which is not always the number printed on it (the printed number is shown beside it where the PDF labels its pages or the page heads print it); other formats are divided at paragraph boundaries into pages of about 3,000 characters, to which page citations refer.
doc_findperforms literal search;doc_verifyreturns the page, character offset and checksum of a quotation.- Scanned pages are found one by one and read by OCR, so a book that mixes typeset and scanned pages loses neither.
doc_readnames the figures its text does not carry: images and drawings on a PDF page, a scanned page that is likely a map or a plate, a slide whose meaning is in a picture, a picture a Word document or an EPUB embeds.doc_page_imageshows the page, the slide or the one figure. For a model without vision, every image is read to it in words by one vision model (vision.model).- Texts produced during the research are indexed on completion. The final report retrieves each node's conclusion as a document, without loading everything into the context at once.
LCM: traceable hierarchical compression
- When a session reaches a set share of the context window (35% by default), earlier conversation is compressed into summaries, which are in turn merged level by level.
- The original conversation is preserved in full. Every summary can be expanded to the text it rests on, and the original can be searched directly, so compression entails no irreversible loss of information.
- All sessions in a project share one retrieval index; any agent can search the conversations of the others.
- Optional features: semantic retrieval with a local embedding model, proactive recall of relevant history, external storage of very long tool outputs, and daily, weekly and monthly roll-ups.
- Each research run may set its own compaction threshold and output limit without affecting the global configuration.
See Documents and the web and the configuration reference.
Outputs
Every source is filed where you can check it, Misaka reports.
All output is written to your project folder:
my-research/
├── final/<run>-final.md the final report, with the costs it accepts and the paths not taken
├── final/<run>-sources/ every file the report cites, linked in place
└── nodes/<node>/ one directory per piece of research
├── plan.md Last Order's plan and her reasons for choosing each Sister
├── cards/<card>/ each Sister's work and the red team's critique
├── synthesis.md the conclusion (synthesis-2.md and onward once revised)
└── SOURCES.md every file the conclusion cites, and the claims each one supports
MISAKA commits only at your request. If the project is a git repository, /commit lists the files
for your confirmation before committing.
Common commands
| Purpose | Command |
|---|---|
| Start MISAKA | misaka |
| Begin a research run | /research, followed by your question |
| Check, halt or resume a run | /research status, /research stop, /research resume |
| Say something to a running node | /research tell [--to NODE_ID] MESSAGE |
| Change a running run's limits | /research limits --sister-parallel 2 |
| See what a run spent | misaka usage --run RUN_ID |
| Talk to a single Sister | /sister 10032 |
| Create a Sister | misaka create 10036 --desc "Econometrics and causal inference" |
| Index your documents | misaka doc scan sources/ |
| Read materials closely with Last Order | /read open SOURCE... --question "..." |
| Choose a model, sign in | /model, /login |
| List every command | / in chat, misaka --help in the terminal |
| Show the panel's key bindings | ctrl+b, then ? (see the panel guide) |
| Update | misaka update --apply |
The command reference lists every command.
Documentation
| Topic | Guide |
|---|---|
| Installing and running a first question | Getting started |
| Running and steering research | Research runs |
| Building a team, adding Claude Code or Codex | The team |
| The panel: tabs, panes and key bindings | The panel |
| Signing in, choosing models, local models | Models |
| Working with documents and the web | Documents and the web |
| Reading materials with Last Order | Reading materials |
| Troubleshooting | Troubleshooting |
| What MISAKA does and does not protect | Running MISAKA safely |
| Command and configuration reference | Commands, Configuration |
docs/README.md indexes every page and defines the terms MISAKA uses.
Data and cost
All data MISAKA keeps stays on your machine: settings, credentials and history in ~/.misaka/,
research output in your project folder. Prompts are sent only to the model providers you
configure. Web searches go to the search services you configure, or, when none is configured or
one fails, to the free public tiers of Exa, Parallel, Firecrawl and Keenable
(misaka web set keyless_fallback false disables this). Literature scans send a question's search
terms to OpenAlex. MISAKA sends no telemetry.
A research run operates at scale: by default up to four branches run at once, each with up to four
Sisters working in parallel as memory allows, so a deep run makes many model calls. A smaller
depth reduces cost, and research.token_cap in ~/.misaka/settings.json sets a hard token
budget for each run.
About the name
MISAKA takes its names from Kazuma Kamachi's A Certain Magical Index and A Certain Scientific Railgun, in which the Sisters, clones of the Railgun Misaka Mikoto, share their memories through the Misaka Network.
| In the story | In MISAKA |
|---|---|
| Misaka Mikoto, the original every Sister comes from | MISAKA.md, the shared identity every agent loads before her own |
| The Sisters, known by serial number: Misaka 10032, 10033, … | your specialists, each with a number, a specialty and her own SOUL.md |
| Last Order, Misaka 20001, who commands the network | the coordinator you talk to |
| The Misaka Network, through which what one Sister learns the others can recall | the project's conversations, searchable by every agent in it |
The "says Misaka" lines in this README are ornamental; each agent speaks as her SOUL.md
specifies, and a single line there gives her the Sisters' manner of speech.
MISAKA is an independent project. It is not affiliated with or endorsed by the author or the publishers of the series.
Foundations
MISAKA's agent kernel is a Python port of pi, and its panel is a port of herdr, with ghostty's terminal library behind every pane. It builds on hermes-lcm for long conversations and PageIndex for document structure, and ports web tools and skills from Hermes Agent and Office support from FrontierAgent. THIRD_PARTY_NOTICES.md records the origin of each part.
MISAKA builds on pi for its simple kernel and its mature, actively maintained community, which lets MISAKA follow upstream directly. MISAKA's graph governs the content and possibilities of research: a node is a completed piece of research, and an edge is a line of inquiry that forked off carrying its reasoning.
Licence
MISAKA is released under the Apache License 2.0. Third-party components keep their own licences, recorded in THIRD_PARTY_NOTICES.md.
If you redistribute MISAKA or build on it, keep the attribution in NOTICE: Apache-2.0 requires it to accompany your distribution.