🧭 A structured intelligence analysis CLI and workflow core for turning raw sources into reusable analytic artifacts.
Glassroom is a CLI and workflow core for structured intelligence analysis.
It helps move from raw sources to reusable outputs such as source bundles, bias analysis, structured analysis, shared case objects, and downstream teaching or writing artifacts.
npx glassroom install openclaw
npx glassroom install projectCurrent working commands:
glassroom install openclawglassroom install projectglassroom list-skillsglassroom assemble case
Version commands:
glassroom --versionglassroom version
Install only selected skills:
npx glassroom install openclaw --skills glassroom-router,glassroom-source-intakeList available skills:
npx glassroom list-skillsAssemble a shared case object:
glassroom assemble case \
--base-case examples/base-case.json \
--source-card examples/source-card.json \
--bias-analysis examples/bias-analysis.json \
--mitigation-pack examples/mitigation-pack.json \
--structured-analysis examples/structured-analysis.json \
--out-json /tmp/glassroom-case.json \
--out-md /tmp/glassroom-case.mdIf npm is unavailable, see Installation for GitHub and manual fallback paths.
Glassroom is not just an agent prompt pack and not just a single skill.
It is a project with two layers:
-
a workflow core
- shared case object
- intermediate artifacts
- reusable analysis modules
-
an integration layer
- mountable OpenClaw skills
- a CLI surface
- public-safe docs and templates
Use Glassroom when you want a workflow that can:
- turn fragmented analysis outputs into a shared case object
- keep source, bias, mitigation, and structured-analysis layers connected
- support downstream HTML teaching pages or writing deliverables
- expose a reusable schema instead of trapping logic inside one-off prompts
- preserve teaching patterns that can survive beyond a single class artifact
It is not trying to be:
- a generic essay generator
- a pile of unrelated classroom prompts
- a direct republication channel for classroom-owned artifacts
- a finished end-user platform before the core workflow contract is stable
The open-source rule is simple: publish the portable backbone first, then add public-safe modules that can stand on their own.
The fastest path right now is to assemble a shared case object from public-safe example inputs.
glassroom assemble case \
--base-case examples/base-case.json \
--source-card examples/source-card.json \
--bias-analysis examples/bias-analysis.json \
--mitigation-pack examples/mitigation-pack.json \
--structured-analysis examples/structured-analysis.json \
--out-json /tmp/glassroom-case.json \
--out-md /tmp/glassroom-case.mdpython3 packages/case-assembler/assemble_case.py \
--base-case examples/base-case.json \
--source-card examples/source-card.json \
--bias-analysis examples/bias-analysis.json \
--mitigation-pack examples/mitigation-pack.json \
--structured-analysis examples/structured-analysis.json \
--out-json /tmp/glassroom-case.json \
--out-md /tmp/glassroom-case.mdYou can also run the public analysis modules directly:
python3 packages/cognitive-bias/build_bias_analysis.py \
--input examples/bias-input.json \
--out-json /tmp/bias-analysis.json \
--out-md /tmp/bias-analysis.md
python3 packages/structured-analysis/build_structured_analysis.py \
--input examples/structured-analysis-input.json \
--out-json /tmp/structured-analysis.json \
--out-md /tmp/structured-analysis.md
python3 packages/source-intake/fetch_source_bundle.py \
--input examples/source-input.json \
--out-json /tmp/source-bundle.json \
--out-md /tmp/source-bundle.mdGlassroom ships with an installer CLI.
The preferred install path is npm.
Install into an OpenClaw workspace:
npx glassroom install openclawInstall into the current project workspace:
npx glassroom install projectInstall only selected skills:
npx glassroom install openclaw --skills glassroom-router,glassroom-source-intakeList available Glassroom skills:
npx glassroom list-skillsIf npm is unavailable, you can still run Glassroom directly from GitHub:
npx github:NanAquarius/Glassroom install openclaw
npx github:NanAquarius/Glassroom install project
npx github:NanAquarius/Glassroom list-skillsFor Claude Code, OpenCode, or similar coding-agent CLIs:
Run `npx glassroom install project` in this workspace and tell me which Glassroom skills are now available.
If the tool has access to your OpenClaw workspace:
Run `npx glassroom install openclaw` and tell me which Glassroom skills were installed into ~/.openclaw/workspace/skills/.
If you want a manual path instead of the installer CLI, you can still clone the repository and copy or symlink the folders under skills/ into either:
~/.openclaw/workspace/skills/./skills/
The installer exists to make that process shorter, cleaner, and easier to repeat.
This public release includes:
- a shared Glassroom case schema
- a workflow contract describing how modules enrich that schema
case-assemblercognitive-bias- now includes an expanded built-in bias catalog with tradecraft-oriented mitigation steps
structured-analysissource-intake- a de-identified UI template reference library
- a mountable open-source
skills/layer - a CLI with install commands and a first real analysis command:
assemble case
The goal is not to dump everything at once, but to open the stable backbone first and expand from there.
The current core flow looks like this:
partial analysis artifacts
→ shared case object
→ reusable intermediate outputs
→ HTML pages / writing deliverables / teaching artifacts
A more concrete version of that flow is:
base-case.json
+ source-card.json
+ bias-analysis.json
+ mitigation-pack.json
+ structured-analysis.json
→ glassroom-case.json
→ glassroom-case.md
What this structure buys you:
- one reusable unit of work instead of many disconnected outputs
- cleaner handoff between modules
- easier rendering into multiple downstream formats
- less prompt-only logic trapped in one place
Glassroom uses a shared case object as the default unit of work.
See:
Not every module needs every field.
But the shared schema is the backbone that lets source intake, bias analysis, structured analysis, mitigations, rendering, and writing outputs keep talking to each other.
-
- merges partial outputs into one reusable case object
-
- turns candidate biases and excerpts into a reusable bias-analysis artifact
-
- turns a policy question, hypotheses, assumptions, and evidence into a structured-analysis artifact
-
- fetches, classifies, and structures source materials with provider-aware retrieval for stronger upstream evidence
skills/glassroom-router/skills/glassroom-source-intake/skills/glassroom-case-assembler/skills/glassroom-cognitive-bias/skills/glassroom-structured-analysis/bin/glassroom.js
These integration surfaces sit on top of the package layer.
That means the executable path lives in packages/, while skills/ and bin/ provide mountable and CLI-facing entry points.
Glassroom also includes the beginning of a public-safe UI template library:
docs/ui-template-library/README.mddocs/ui-template-library/templates/docs/ui-template-library/reference-pages/
This library is for preserving reusable teaching-page structure after de-identification.
It is not a dump of classroom-owned pages.
The rule is to preserve instructional flow, information architecture, and reusable UI logic while removing personal, instructor, course-owner, and source-specific identity markers.
Glassroom/
├── bin/
├── docs/
│ └── ui-template-library/
├── examples/
├── packages/
│ ├── case-assembler/
│ ├── cognitive-bias/
│ ├── source-intake/
│ └── structured-analysis/
├── schemas/
├── skills/
│ ├── glassroom-router/
│ ├── glassroom-source-intake/
│ ├── glassroom-case-assembler/
│ ├── glassroom-cognitive-bias/
│ └── glassroom-structured-analysis/
├── package.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
├── .gitignore
├── LICENSE
├── README.md
└── README.zh-CN.md
Near-term priorities:
- strengthen the CLI around real analysis commands
- expand source-ingestion coverage
- expose more reusable renderer and delivery layers
- keep OpenClaw integration thin and package-backed
Planned public-facing module families still include:
- OSINT pitfalls and mitigations
- case HTML rendering
- course writing outputs
- prefer stable structure over clever inference
- make intermediate artifacts reusable
- keep the shared schema recoverable across modules
- separate workflow orchestration from presentation layers
- open-source only what is public-safe, portable, and maintainable
Glassroom is still in an early extraction phase.
But it is now past the “docs-only” stage: the core contract is public, the first analysis modules are public, the first de-identified UI reference pattern is public, and the CLI now includes both install flows and a first real analysis command.
Expect the schema, examples, module boundaries, and public-safe renderer layer to keep improving as more of the local Glassroom system is opened up.
These two books are now part of the working reference set behind Glassroom's current direction:
- OSINT Techniques: Resources for Uncovering Online Information — Michael Bazzell, Jason Edison (2024)
- Structured Analytic Techniques for Intelligence Analysis — CQ Press (2020)
MIT
See CHANGELOG.md.
See CONTRIBUTING.md.
See SECURITY.md.