Repository navigation
Releases: Luciole-Studio/Misaka-Agent
Release list
v0.18.11
Fixes found by running full research runs on a real model after 0.18.10 (a three-node run with 22 cards, stopped and resumed midway), and by reviewing 0.18.10's fixes again.
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 | iexBoard
- A research card no longer writes every streamed token to the board. One run wrote 46,000 rows (22 MB), and each budget check read them all again. Boards that already hold such rows are no longer slowed by them.
research.token_cap
- A request is settled before its reply reaches the caller. A card that exited on its last reply could lose the request's receipt; its worst case was then held for 15 minutes and charged in full.
Research runs
- A follow-up round no longer repeats for ever when its cards all failed and Last Order concluded without them.
- A round whose every card was cancelled is withdrawn, and the node concludes on what it has. It used to be closed as a branch point with no conclusion. A first round with nothing done fails the node.
- A card blocked with no help request waiting is a lost card for Last Order to decide. It used to fail the node, sometimes as "a dependency cycle". A resume reopens it.
- Planning again starts from the plan as it was changed while its cards ran: a cancelled card no longer comes back.
- Plan calls:
- An append to a follow-up round keeps the cards before it.
- A full plan sent again in the same turn replaces the first.
- A fork sent twice counts once.
- A
local_idgiven twice is refused.
/research stopon a run that has already ended says so instead of driving it again.- A node whose recorded conversation was never written opens a new one. It used to fail every resume, or for a root started from a chat, continue that chat's newest other conversation.
- A busy board no longer costs the driver its lease while the lease has time left.
Cards
- A card's attempt counts only its own declarations. A card sent back to ready had its next attempt's first turn submitted with the last attempt's summary, bypassing a reviewer's request for changes. A red team's retry inherited the last critique.
- An idle card pane is no longer killed as wedged while the panel watches it.
- A panel card whose Sister has left the roster fails, as a headless one does, instead of waiting for ever.
Research outputs
- A draft or survey that was moved away is rebuilt from the run's record instead of failing every resume.
- Quotations are located faster. Each document version is searched once: 200 unfound quotations in an 800-page book took 30 s, now under one. The search no longer holds up the node, and its caches are smaller.
SOURCES.mdlists pages consulted but not cited on Windows too.- On macOS, a frozen research file is refused under either Unicode spelling of its name.
v0.18.10
Update now if you run research on 0.18.9: its Sister cards fail. A card's second model request failed with TypeError: cannot pickle '_asyncio.Task' object, with or without research.token_cap, and every card gave up after three attempts. This release fixes that and what a full review of the last day's changes found, and closes issue #10 and issue #6.
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 | iexResearch cards and research.token_cap
- Fixed: every research card failed from its second model request (
cannot pickle '_asyncio.Task' object). The request meter copied a request's options deep, its abort signal included: the copy dragged the running event loop with it. The same copy is why Esc or stopping a run did not stop a request already sent. Both work again. - A busy run no longer reads as out of tokens with nothing spent. Requests in flight hold their worst case until they end; they were counted as spent, so a run with several cards working could stop as if it had reached its cap, or start its cards in Beast Mode.
- A request refused before its reply began (a 429, a dropped connection) costs nothing against the cap; retries used to fill the cap with nothing.
- A skill review running out of its own allowance no longer stops the research run.
- Your
retry.provider.maxRetriesapplies to research requests again. - Editing
research.token_capwhile a run goes on takes effect everywhere at once: the run's driver kept the value it started with, and relaunched cards the new cap refused, without end. - A run halted at its cap settles the requests it stops (macOS and Linux): they used to hold their worst case for 15 minutes and then be charged it in full, so a resumed run waited, then halted again.
- A run waiting for your go-ahead halts at its cap instead of waiting to be stopped by hand.
- Sub-agents started from a research window are counted against its run.
- A Gemini request refused at once (a 429) costs nothing, and is retried as other providers' are.
- The board shows how many tokens it has recorded, not a "stop mode" the per-run cap never meant. A negative cap is refused at start.
Streaming
- A reply dropped mid-stream is retried (
peer closed connection,Connection reset,WinError 10054): issue #6's failure ended the turn with no retry. - An API key ending in a space or a line break is no longer printed in the error the request fails with.
- After the terminal was held up (a Windows console with text selected), the next frame no longer waits as long again; a frame's wait follows the work it took, also when other threads or programs keep the machine busy.
Documents
- A statistical table is no longer sent to OCR: its numeric rows looked like running heads and were set aside, so its pages read as empty. Affected documents are re-read once.
- A book in a read-only folder is indexed again (OCR now works in the system's temporary folder).
- A plate or a chart read by OCR is named in
doc_read, so the model knows to look withdoc_page_image. - An EPUB picture wrapped in
<svg>(Calibre covers and plates) is marked; affected EPUBs are re-read once. - An empty or cut-off reading from the vision model is no longer kept as the image's reading. Readings kept by earlier versions are dropped once, so images are read again the first time.
- A picture of huge pixel dimensions is refused in a sentence instead of using hundreds of megabytes.
Search, usage and commands
- Keyless search walks past more failures: Firecrawl's server errors, Keenable's refusals and a vendor this machine cannot reach (a blocked or reset connection) now move on to the next free service instead of ending the search.
misaka usageno longer charges a stopped or failed run for everything said in its window afterwards, the next run included./research limits of state capacity in Qing Chinaand other questions that start withlimits,status,stoporhelpstart research./research start QUESTIONalways does.- From a release archive, a skill's own Python script can import the module beside it again.
- Homebrew and winget users are told
brew upgrade misaka/winget upgrade Luciole-Studio.Misakabymisaka update(the installer script would have put a second copy beside theirs), andmisaka uninstalluses them too. misaka task add --body-filereads a file Notepad saved with a BOM, and refuses a non-UTF-8 one in a sentence instead of a traceback.- A quotation that runs onto the next page is located on the page it is cited on.
- A Sister whose old
DESCRIBE.mdhas a colon in its description keeps her profile.
Security fixes, fixed
0.18.9's hardening had gaps:
- A Sister writing
@PROJECT.mdor afile://path reachedPROJECT.md, a live skill folder or MISAKA's settings past the checks. The checks now read a path as the write and edit tools do. - On macOS and Windows,
project.md,.ENVor~/.MISAKA/Credentialswere other names for protected files. The checks compare paths as those file systems do; on Linux, whereproject.mdis another file, it is left alone. - The copies of your credentials that
misaka updatekeeps are protected like the originals. - A project's own
.envin a sub-agent's worktree is readable again; MISAKA's credentials are the home's and its roles'.envandcredentials/. - Restoring an official optional skill was refused for 66 of the 140 shipped skills; installing one from the hub had the same fault. Both scan them as official skills again.
- A report's sources cited as
`downloads/a.pdf p. 3`or saved under an escaped name (my%20paper.pdf) go into its bundle again.
Watchdog, Windows and MCP
- Pressing Ctrl+Z in a window and resuming it more than five minutes later no longer ends it as stuck.
- A process stuck before its first step is caught too. A stall log is reported only for the process that wrote it, logs with no stall are removed when their process ends, and logs are kept for 14 days.
- On Windows, when a card's process has died, the tool processes it started are ended before the card runs again.
- An MCP server started with
npxoruvxreaches your registry mirror and proxy again: npm, uv and pip settings are passed to it (0.18.9 dropped them). Still no API keys, no registry tokens, and no SSH agent. - A window you are reading (a research node's, a card reopened to look at) stays open on a stall; it only writes the stack.
- A window closed with SIGTERM (the panel closing a pane) shuts down in its own order and restores the terminal.
v0.18.9
A card no longer hangs on a full-width space, a frozen process now leaves its stack and gets retried, research.token_cap works, MCP servers no longer start with MISAKA's API keys, and the rest of the security audit attached to it is answered. This answers issue #10.
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 | iexIf you set research.token_cap, read the token cap section: it now caps each research run, not the whole board.
If an MCP server of yours read an API key from MISAKA's environment, name the key in its env (see MCP below).
Cards that hung for ever
- Fixed: a shell command with a full-width space hung its card. Before a
bashor PowerShell command runs, MISAKA checks it does not touch the live skill folders. A word containing a whitespace character thatstr.isspaceknows andshlexdoes not split on -- the full-width space U+3000 in a CJKgreppattern, a no-break space, 23 more -- sent that check into an endless loop on the session's event loop. The card ran at 100 % CPU and never returned, and a chat window froze. The check now always ends. - A frozen process leaves its stack. If an event loop is blocked for more than five minutes, every MISAKA process writes the stack of every thread to
~/.misaka/logs/stalls/. A card, node or sub-agent that nobody is watching then exits, and is reclaimed and retried as a crashed attempt. Its failure reason names the line it was stuck at. Chat windows, the CLI research driver and the panel only write the stack. - On Windows, a card a Sister root had claimed was never reclaimed after its process died; the panel kept saying its previous process was still running. Fixed.
misaka researchrun from a pane's shell shows its nodes' output again.
research.token_cap
With a cap set, every research run used to stop at its first request ("Shared token budget is too small"), and a capped request ran with reasoning switched off.
- The cap belongs to one research run: its Last Orders, every card and the sub-agents those cards start. Cards outside a research run are recorded, but never capped. Before, the cap covered everything on the board, for good.
- Every model request counts, including compaction, reading images to a model that cannot see, MoA and LCM summaries; several of these were not recorded before. Each request reserves what it could cost before it is sent and records what it used when it ends, so nodes and cards working at once cannot go past the cap together.
/research statusshows the run's usage against its cap while it runs. - Reasoning stays on; it is paid for out of the cap.
- When the next request no longer fits, the run stops with a partial report and its cards wait, ready. They are not marked failed, and they do not use up a retry. Raise the cap and resume the run to go on.
- One model API, Codex, takes no output limit: its requests reserve their model's whole output and cannot be cut short.
MCP
-
A stdio MCP server no longer inherits MISAKA's environment, which held API keys: the home's
.envis loaded into it. A server now getsPATH,HOME, the locale, the temporary folder, Windows' system variables, the proxy and certificate variables,MISAKA_HOME, and its ownenv. A key it needs goes inenv, where${NAME}takes the value from the environment:"mcpServers": {"github": {"command": "npx", "args": ["-y", "github-mcp"], "env": {"GITHUB_TOKEN": "${GITHUB_TOKEN}"}}}
Hardening from the audit
- Text MISAKA passes on from outside is fenced as data: findings, a Sister's output, the context packet and the materials listed in a card now reach a model inside the same untrusted-data fence as fetched pages.
- A Sister or a sub-agent no longer changes the project's instructions:
PROJECT.md,AGENTS.mdandCLAUDE.mdin the project or a folder above it. Last Order and you still can. read,grepandfinddo not open MISAKA's credentials:~/.misaka/credentials/and.envfiles in the home.- A research node no longer crashes at start in a restricted container where a process cannot read its own start time.
- Restoring an official optional skill runs the skill scan first, as installing from the hub does; a refused restore moves nothing.
- A source whose file name holds spaces or brackets, such as
downloads/my paper (2024).pdf, now goes into the report bundle. - New guide: Running MISAKA safely, on what MISAKA does and does not protect. As in pi, the models act with your account's permissions; a shell command can still reach everything your account can. For material that is not yours, run MISAKA as a dedicated user or in a container.
v0.18.8
A long streamed reply no longer dies with Connection error. in the panel. This answers issue #6: /research from the panel failing at plan submission, and a node's Last Order cut off mid-conclusion, on DeepSeek, while the same run from misaka research succeeded.
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 | iexWhat was wrong
The window drawing a reply fell behind the reply itself. Every frame re-estimated the whole context, system prompt included, for the footer's context gauge; once a frame took longer than the 16 ms between frames, frames ran back to back and the stream was read about one event per frame. A provider that sends one token per event, as DeepSeek does, got further ahead with every second, until it gave up on the connection. misaka research has no window, which is why it was unaffected; providers that send larger pieces (Anthropic) stayed within reach, which is why it went unnoticed.
Against a local server streaming DeepSeek-shaped thinking, the window was 165 s behind after 20,000 characters, and with a bounded receive window the server dropped the reply half way. Now it stays within 0.2 s through 60,000 characters, in the panel and in misaka chat.
Fixes
- The footer's figures are computed once per change to the conversation, not once per frame (as pi does).
- A frame waits at least as long as the last one took before the next, so drawing never takes more than half the time and the reply is read in between.
- OpenAI-compatible providers (DeepSeek, OpenAI, Azure and the rest) watch for a cancel with one task per reply instead of one per streamed event, as the Anthropic and Google providers already did.
Connection error.names what failed underneath, for exampleConnection error. (ReadError: ...), so a dropped connection can be told apart from a timeout or a reset.
v0.18.8
v0.18.7
A running research run can now be steered: its limits changed, its nodes spoken to, its cards added, reassigned or cancelled. Pages carry the numbers printed on them, quotations are checked against the page they are cited on, and what a run spent can be seen. Everything here answers issue #9.
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 | iexResearch: a running run can be changed
- Limits.
/research limits [RUN_ID] --sister-parallel 2 …(ormisaka research --limits RUN_ID …) changes a running run's limits with the options a new run takes. Each is read where it is used: Sister cards per node at once, nodes at once from the next level, depth and node limit at the next reconciliation, follow-ups and revisions at each node's next decision. A limit is never set below what the graph already holds. - Speak to a node.
/research tell [RUN_ID] [--to NODE_ID] MESSAGE(ormisaka research --tell RUN_ID [--to NODE_ID] "MESSAGE") reaches a running node's Last Order -- the root's when no node is named -- as if typed in her window.misaka dmreaches a contact session, never a running research node; its help now says so. - Change a node's cards while they run. Ask the node's Last Order to add a card, give a card that has not started to another Sister (one created since the plan was made, say), or cancel one. She records it with
misaka_research_cards, checked as a plan's cards are; the run applies it at once, the cards already working go on, and the node's plan file lists what changed and why. - Roster changes are told. A Sister created or removed while a run works is a notice to Last Order.
- A failed card is told at once, with its reason. What becomes of it (retry, go on without it, or fail the node) is still decided once the phase's other cards are back.
Spending
misaka usagelists what recent runs spent, in tokens and money;misaka usage --run RUN_IDshows one run by conversation (the root's Last Order from the run's start, each node, each card with its retries) and by model./research statusgives the total. Money is each call's price in the model catalogue; a call to a model with no price there is counted apart.- Reasoning tokens a provider reports are recorded (they are part of the output count, which was right all along).
Documents
- Printed page numbers. Beside the file's page,
doc_read,doc_findanddoc_verifyshow the number printed on it: from the PDF's own page labels, or read from the running heads and footers. A citation can then name both ([doc p14; printed p. 351]). - Quotations are checked against the page they are cited on.
doc_verifytakes the page you cite and says when the quotation is on another page, or nowhere in the indexed text. Research cards can use it, and the ledger, the evidence the red team reads and SOURCES.md mark a quotation that is not where it is cited. - PDF outlines come with every install. The outline packages were an optional extra, which a release archive cannot add: no archive install had chapter outlines. They are dependencies now.
misaka[...,pageindex]still installs. - A range of pages with no text gets
doc_read's hint to look at the page image again. - Helper scripts a card writes are no longer warned about as documents the corpus refused.
Board and web
misaka task add TITLE --to SISTER --body-file FILEadds a card by hand, through the same checks as Last Order's;misaka task start IDruns a ready card in the terminal.misaka task ID --deleteworks as before.- Keyless web search walks past a free service that refuses this client (HTTP 401/402/403/5xx), as it does past one that throttles. When every service fails, the model is told so in one line; the services' own messages go to the log.
- A Sister whose description contains a colon no longer drops out of the roster; a profile that does not read back is not reported as created.
v0.18.6
Scanned pages are found page by page and read where they stand, the figures a text does not carry are named and shown, and a model that cannot see is given every image in words. Releases now come with prebuilt archives for six platforms.
Update
misaka update --applyThen restart MISAKA. Documents indexed by an earlier version are re-read when misaka doc scan (or doc add) meets them again; see Documents below.
Install from a release archive
Each release now carries an archive per platform (macOS, Linux and Windows, on x86-64 and ARM) with its own Python, uv, git, ripgrep, fd and poppler inside:
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 | iex- ocrmypdf, DjVuLibre and LibreOffice stay optional and are not in the archive.
- An archive is updated by running the installer again;
misaka updatesays so, instead of suggestingpip install. - The installer does not replace a
misakaanother install put in~/.local/bin(uv tool,pipx): it stops and says how to go on. On Windows, an earlier archive's folder leaves your PATH when you update. - Installing from the repository with
uv tool installworks as before.
Documents
- Scanned pages are found page by page. A PDF used to go through OCR whole or not at all, and not at all once a fifth of its pages carried text: a scanned book with a typeset introduction, a document collection whose facsimiles follow the editor's pages, a scan stamped "Downloaded from …" on every page all entered the corpus with their scanned pages empty, and nothing said so. Each page is now checked on its own -- no text of its own, a garbled text layer, a picture with little text -- and only those pages go through OCR. A page with a text layer keeps it, with OCR's reading after it.
- Page numbers are right. When OCR skipped a run of pages, the one placeholder that stood for them was stored as a page, and every later page was numbered one too low: a 14-page PDF with two typeset pages became 13 pages, and quotations were located on the wrong page. A DjVu with a page without hidden text was stored a page early from there on. Both are fixed.
- Pages nothing could read are named. A page that needed OCR and did not get it (no ocrmypdf, a failed run) is counted by
doc_listand named bydoc_read, with the reason. - Figures are named where the text is read.
doc_readnames what its pages hold that the 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_outlinelists the pages that have them. - And shown.
doc_page_image(doc_id, page, figure=N)shows one figure alone, at the resolution its labels need. Withoutfigureit shows the page: of a PDF, a DjVu, or a deck (rendered through LibreOffice; a hidden slide has no image). - Documents indexed by an earlier version are re-read when they are added or scanned again, if their stored pages show they may need it: the pages OCR now reads, a document whose pages were out of step, an EPUB whose pictures were not marked. Only the pages whose text changes are rewritten, and
doc_readanddoc_verifysay so on them.
One vision model, for every model that cannot see
Set "vision": {"model": "provider/model"} in settings.json. A model without vision used to receive "(image omitted)" for every image. Now every image a request carries -- a picture you paste, an image file, a page or a figure from doc_page_image, a screenshot, a picture from an MCP tool -- is read to it in words by that one model, once per image. A model that can see is sent the image itself. browser.vision_model is read when vision.model is not set.
Research
- The research rules check each claim by the ledger's own
claim_type-- fact, inference, interpretation, normative -- with the check that fits it; a causal claim is an inference, checked against other causes and the order of events. Two checks are added: source criticism (who wrote it, when, for whom and why; one source counts once) and statistics (sampling, effect size, base rate). The rule on how reasoning skills are written now appears only where skills can be written. (#5)
Fixes
- Windows: installing agent-browser from
misaka webno longer fails with WinError 193. (#3) - The web tests no longer fail on a machine with agent-browser on its PATH or a system proxy turned on. (#4)
Guides updated: Documents and the web, Models, Configuration, Getting started.
Thanks to @cute-rui for the release archives (#2), @2youg1 for #5 and #4, and @Kot0b-Manak for #3.
v0.18.5
Agents can now reach each other whatever state the recipient is in, and a node's review runs as two loops: the red team's first, then the divergence review's.
Update
misaka update --applyThen restart MISAKA: the panel's background process changed (protocol 54) and is replaced on the next start.
Messages between agents
- A finished card answers. A message to a finished card wakes her, whether it names her card, her session or her number and whether or not her window is still open: the message is her next turn in her own conversation, she answers, and completes again. A note that asks nothing needs no reply. Waking her does not send the cards built on her work back to be redone, and it works while the card she depends on is itself being consulted, so two dependent cards can message each other both ways.
- A card that has not started gets the message when it starts, at its first tool boundary.
- Names inside a research run mean that Sister's card on the sender's node (else in the run), not her contact session outside the run;
last-ordermeans the Last Order of the sender's node. - A node's Last Order reads mail. Below the root, her Sisters reach her by the session id their card gives or as
last-order; before, her window had no mailbox and their messages went to the root's window. The root's window still receives the card notifications. - Contact sessions reply. The answer of a contact session (
misaka dm) goes back to the window that wrote to it. - Asking before deciding. Before she answers an objection about a card's material, Last Order can wake the Sister who wrote it and wait for her answer (
misaka_sister_outputwithblock: true) in the same turn. - A message to a sub-agent still queued or starting no longer holds the sender until it starts.
Research
- Two review loops. Conclusion, red team, Last Order's answers, red team again, until nothing material remains or the revisions run out. Only then the divergence review: 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 run out. Then the possibilities not taken go to the node's decision. A gap is never a fork. The revisions limit applies to each loop.
- Your instructions hold for every node. What your question says about how the run is carried out -- which or how many Sisters, how many forks, how fast -- reaches every node's plan and the reconciliation between levels, and a limit you set ("open two at most") is a reason to leave the other options unopened: the ones with the strongest reasons open, and the rest are recorded as not opened because of it.
- What a run saved stays as it was saved. While a run is unfinished, the agents' file tools leave its saved plans, conclusions, survey and report draft alone; a change belongs to the phase that writes them. A draft changed anyway is put back from what the run recorded and the changed file kept beside it, so the run goes on instead of failing at its final review and at every resume. A failed run states its reason where it is looked up.
- An objection the red team raises again word for word in a later round is answered again, instead of being folded into the earlier round's answer.
- Before a review is submitted, its author is shown what she recorded and checks her file against it: only the record is acted on.
- A conclusion is written only after every card woken during review has finished, so none is missing from its material.
- Findings a Sister records after her card is finished (answering another card, say) are declared with the card.
- Card contracts say which sibling cards run in parallel and which wait for which, and name each sibling's Sister to message.
- Research sessions keep the rule against writing card statuses into the board by hand.
Other
- The unattended-session shell guard's refusal now names every expansion it refuses,
$NAMEincluded.
Guides updated: Research, Team, Troubleshooting.
v0.18.4 — first release
Pairing a DAG with symptomatic reading to unearth plural narratives: an AI agent architecture built for the humanities and social sciences.
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.
This is the first release. From here on, updating carries your settings, Sisters, board, conversations and projects forward.
Install
uv tool install "misaka[providers] @ git+https://github.com/Luciole-Studio/Misaka-Agent.git"
mkdir my-research
cd my-research
misaka setup # sign in, choose a model, create your first two Sisters
misaka # start MISAKA and type /researchMISAKA runs on macOS, Linux and Windows 10/11, on x86_64 and arm64. On Linux the panel requires glibc 2.28 or newer (Ubuntu 18.10, Debian 10, RHEL 8 and later); elsewhere MISAKA opens a plain chat. Getting started covers the setup, the tools each system needs, and a first research question.
Core design
- Specialists invoked like skills. Last Order calls on a Sister the way an agent invokes a skill. Skills load in tiers, as in Hermes: the system prompt lists only each skill's name and summary, and the full SKILL.md and its references are read when needed. Sisters are exposed in the same tiers. Her DESCRIBE.md plays the part of a skill's summary, so Last Order ordinarily sees only its description and opening lines, and reads the full introduction and the Sister's list of skills when planning research; her SOUL.md and the bodies of her skills load only in her own session, never in Last Order's context.
- A division of means and ends. Each Sister brings her own specialty, skills and model (Claude, GPT, Gemini or a local model) to searching and reading within her field, and Claude Code and Codex can join as members to take on tasks. Because the specialists carry most of the searching and tool work, Last Order's context is reserved for studying the material they submit.
- Symptomatic reading. Beyond examining facts and reasoning, the red team reads Last Order's reasoning for what the conclusion leaves unsaid yet relies on. The divergence review that follows sorts these absences in two: oversights the line itself can repair are made good within the node; directions its premises occlude pass to Last Order, who either opens them as new research or records why she does not. These are the two forms of invisibility Althusser distinguished in symptomatic reading: what is overlooked, and what the problematic does not permit to be seen.
- A directed acyclic graph of possibilities. Each new direction forks from Last Order's session, inheriting all prior reasoning, and becomes a node with its own team and red team. The graph unfolds level by level: each possibility is opened once, and a question raised by several lines is researched once. Lines that converge are confronted where they meet, integrated where they can be, and where they cannot, their disagreement is stated precisely.
- Dissolving the question. Research may show that a question rests on a conceptual confusion or an ideological presupposition and cannot stand as posed. That is a legitimate conclusion in its own right; before it alters the question you asked, Last Order seeks your consent.
- Beyond doxa. A single exchange tends to stop at a model's most frequent answer: a doxa, widely held and seldom examined. Every plan carries a coverage table whose empty cells are declared gaps. The coverage maps derive from the schemes disciplines use to classify their own literature, whose blank spaces mark what a field has not counted as a question.
- Traceability. Citations trace to the page: PageIndex builds chapter outlines of long documents, so agents read by chapter, cite printed pages and locate any quotation, with OCR for scans in Chinese, English and Japanese. Context traces to the source: every summary made by lossless context management (LCM) leads back to the original text.
- An auditable research process. Plans, task cards, every version of a conclusion, critiques and source lists are kept as Markdown files in the project, which is itself a git repository. MISAKA commits only at your request and after you have reviewed the files.
- Under your direction. No plan proceeds without your approval, which you give in ordinary conversation. Each branch has its own tab in the panel, every agent runs in a pane you can enter at any time, and runs can be halted and resumed.
- Your data stays yours.
misaka updatekeeps your extras and backs up your data first;misaka uninstallkeeps your data unless you ask for its removal.
Documentation
The documentation index covers research runs, the team, the panel, models, documents and the web, troubleshooting, and every command and setting. Getting started is also available in 简体中文 and 日本語.
Licence
MISAKA is released under the Apache License 2.0. If you redistribute MISAKA or build on it, keep the attribution in NOTICE: Apache-2.0 requires it to accompany your distribution.