Themis standalone (mode 2)
Themis standalone is the @aegis-skills/themis package: a local web dashboard plus a headless CLI that run the Themis workflow on your machine with a model you choose. It uses the same Aegis skills, the same governed tool gateway and the same approval rules as the plugin mode, but you do not need an AI assistant host.
This guide covers install, every dashboard page, local models, tool-calling behaviour and troubleshooting. The package README has the command reference and the security model.
Status: in development. The app is version 0.1.0 and is built and tested in the repository, and Themis is still being matured locally. It is not published to npm yet, so the npx commands below do not work yet. Run it from a checkout today (first install option below); the release will be announced on the website.
The dashboard listens on 127.0.0.1 only, on port 9120 by default. It bundles its own copy of the Aegis skills, so the Skills page shows the bundled version and how fresh each skill's intel is. Everything the app stores lives in ~/.themis/; see Configuration.
Run from the repository
Verified on 2026-10-12: the built CLI prints themis --version and the dashboard starts and serves from a checkout. You need Node.js 24 or later.
git clone https://github.com/drupadsachania/aegis-skills
cd aegis-skills
npm ci
npm run build -w @aegis-skills/themis
node packages/themis-app/bin/themis.js dashboard
The dashboard prints a Dashboard: link with a one-launch session token and opens your browser (add --no-open to skip that). See the troubleshooting list below if the UI is reported as not built.
Install on a clean machine (planned, once published)
You need only Node.js 24 or newer, on Windows, macOS or Linux. No Docker, compiler or build tools are required.
- Check the version:
node -vprintsv24.xor higher. - Start the dashboard:
Or install it globally and runnpx @aegis-skills/themis dashboardthemis dashboard:
Until the packages are published, install the four tarballs together instead (all in one command) and runnpm install -g @aegis-skills/themis themis dashboardnpx themis dashboard:npm init -y npm install ./aegis-skills-*.tgz ./aegis-skills-themis-core-*.tgz ./aegis-skills-themis-gateway-*.tgz ./aegis-skills-themis-0*.tgz npx themis --version--versionprintsthemis 0.1.0 (Aegis ..., osk ...)with no warning line. - Your browser opens the dashboard. If it does not, open the printed
Dashboard:link. The link holds a one-launch session token; do not share it. - Add a model (see Models & Keys below), then use Run.
Command-line only:
npx themis run "Review the security baseline of a small Linux web server running nginx and SSH"
The Markdown report goes to stdout, progress to stderr. Exit code 3 means the run paused for an approval: start themis dashboard, decide on the Approvals page, and the run resumes.
Dashboard pages
Run
Choose a mode with the buttons at the top. Every form shows: "Requires authorization: use only on systems you own or are authorized to assess."
- Themis task: describe the task (up to 4000 characters), optionally pick a provider (otherwise the default), and add environments and tags (comma-separated). Start shows a live timeline of steps and sub-tasks. When a run needs an approval it shows a warning with a link to Approvals. When it completes the report appears below, with links to the saved report and its Markdown/JSON exports.
- Compliance audit: paste a configuration, policy or description (up to 12000 characters), choose the input type and standards (CIS L1/L2, NIST CSF, ISO 27001, SOC 2, PCI DSS, HIPAA, IEC 62443, NIST 800-53), and optionally a system type and environments. You get the executive summary, a findings table (severity, control, title, recommendation) and a saved report.
- Exposure validation: paste the exposure description and optionally a CVE, KEV and EPSS details, the authorization checkboxes (authorized, scope confirmed, target identity verified, maintenance window), an approver, asset id, business criticality and crown-jewel flag. The result shows the workflow state, risk before and after, the executive summary and a saved report.
If no provider is configured the page tells you and links to Models & Keys.
Sessions
A list of runs (short id, task, status, current step, pending approvals, last update). Open one to see its status, error (if any), version stamp, sub-tasks (skill, phase, dependencies), results (confidence and guardrail verdict, with findings in a collapsible block), its approvals and its audit events.
Resume appears when a run has failed, when it is awaiting approval with nothing pending, or when it is marked running but no worker is active (for example after a crash). Resuming continues from the last checkpoint.
Findings & Reports
Every report (Themis, audit, exposure) is saved here with a stamp such as Themis 0.1.0 · Aegis 1.1.0 (osk 1.x). Filter by kind, open a report to read it, and download it as Markdown or JSON. Reports are shown as plain text.
Approvals
Pending proposals show the run, server/tool, whether it is a write or execute action, the reason, the redacted arguments and when it was proposed. Approve asks for a confirmation and then runs the action through the gateway. Reject records the refusal. Once nothing is pending for a paused run, it resumes automatically ("Run resumed").
If Themis restarted after the action was proposed and its arguments contained secrets, a warning explains that approving records your decision but the action cannot run and must be proposed again. The decided list shows each decision and its execution outcome: executed, not_executed, needs_reproposal, failed or not_run. The page refreshes every 5 seconds. Nothing runs without a click.
Skills
The bundled Aegis skills with description, phase count and "intel as of" date (marked stale if older than 30 days or unknown). Untick a skill to disable it: disabled skills are not offered to the planner or to sub-agents.
MCP servers
External tool servers that sub-agents may use, always through the gateway. The table lists id, transport, URL or command, allowed skills, allowWrite, maxCalls and timeoutMs. Edit the JSON list and Save (invalid entries are dropped and the count is shown). Header values appear masked; leaving a masked value unchanged keeps the stored secret. Test lists a server's tools with their class and disposition without calling any of them.
Two things to know: stdio servers start a local command on this machine, and servers with allowWrite let sub-agents propose write or execute actions, each of which waits for your approval.
Example (macOS/Linux):
[{"id":"everything","transport":"stdio","command":"npx","args":["-y","@modelcontextprotocol/server-everything"],"allowedSkills":["*"],"allowWrite":true}]
On Windows use "command":"npx.cmd", or the full path to npx.cmd.
Models & Keys
Pick the default provider. Each cloud card (Anthropic, OpenAI, Google Gemini) shows the key status and where it comes from (from environment disables editing), the masked key, a link to get a key, and:
- an API key box (cleared after saving; the key is never shown again), Save key and Remove;
- Test, which reports success with latency and model, or the error;
- per-tier model overrides (fast, standard, power).
The Local card has a preset (Ollama, LM Studio or Custom), a base URL, a model name (suggestions appear after a test), an optional key, Save and Test, and shows the tool-calling status (supported, unsupported or unknown).
You can also manage keys from the terminal: themis keys set <provider>, themis keys list, themis keys test <provider>.
Settings
Read-only data locations (home folder, config.json, .env, themis.db, app.db) and a note on how the key file is protected (mode 0600 on macOS/Linux; inherited user-profile permissions on Windows). You can change the maximum concurrent runs (1-4) and the dashboard port (1024-65535, applies at the next launch), and see the version stamp.
Local models (Ollama and LM Studio)
- Ollama: install it, run
ollama pull llama3.1:8b(or another tool-capable model). It listens onhttp://127.0.0.1:11434. LM Studio: load a model and start its local server on port 1234. - In Models & Keys, on the Local card choose the matching preset, enter the model name and Save.
- Click Test. A pass shows the latency and the tool-calling result.
- Set Default provider to Local and start a run.
Tool-calling behaviour
The Test button probes whether the model can call tools and stores the result.
supported: sub-agents run with tools, including your MCP servers.unsupportedorunknown: sub-agents run in no-tools mode. The skill phase and earlier findings are placed in the prompt and no external MCP tools are offered.- If a model rejects tools at run time, that sub-task is retried once in no-tools mode.
Cloud providers always run with tools. Small local models sometimes return malformed JSON during planning; Themis retries once, then fails the run with a clear message. You can change the model and Resume.
Troubleshooting
- Port in use. Pass another port:
themis dashboard --port 9200(orthemis config set dashboard.port 9200). - "Dashboard UI is not built". Only seen when running from a git checkout. Build it with
npm run build -w @aegis-skills/themis. The published package ships the built UI. ExperimentalWarning: SQLite is an experimental feature. Themis suppresses it on Node 24. If you see it, check which Node you are running withnode -v; Themis requires Node 24 or newer and refuses older versions.- A provider test fails. Read the error on the card. Check the key (or
ANTHROPIC_API_KEY,OPENAI_API_KEY,GOOGLE_API_KEYin the environment, which override the key file), the model name, and for Local that the server is running and the base URL ends in/v1. - A stdio MCP server is not found on Windows. Use
npx.cmdas the command, or its full path. - The dashboard shows "Not authenticated". Open the
Dashboard:link printed by the current launch; the token changes every time Themis starts. - A run is stuck as "running" after a crash. Open the session and press Resume.