Skip to main content

Eonrise

Finds the research fields that already solved your problem under another name.

ci python license dependencies

Features · How it works · Install · Examples · FAQ · Docs

eonrise --demo --out output

A problem that feels new in my field is often an old one somewhere else. Someone in law, medicine or materials science has usually studied it for years, under words I would never think to search for. Eonrise takes a question in plain language, searches up to six scholarly sources, and returns a short brief: what the literature says about the question, what it admits it cannot do, and which distant fields share the same shape of problem.

Features

You give it You get back You need
A question in plain words A brief with the mechanisms, measurements, failure modes, methods and neighboring fields the papers support Internet access; no API key
The same question Papers from distant fields that share the question's shape, plus searches to take into those fields Nothing extra
Papers you gathered yourself (--bundle) The same brief, fully offline A JSON file, format in docs/USAGE.md
Repeated runs over weeks A local paper store, searched before the APIs, and learned cross-field synonyms Disk space under ~/.cache/eonrise/
A script or another tool research_map.json and graph.json with every term, paper and edge Nothing extra

Every term in the brief comes from a paper's title, abstract or keywords. When the papers do not support part of the map, that part stays empty and the brief says so.

How it works

Each run grows a map of concepts around your question: broader fields above it, related fields beside it, narrower ones below, each branching again. Concepts backed by the same papers are linked too. This is the written instructions question run with --max-depth 30 --max-nodes 2000: 1,950 concepts, 20 levels deep. Click the picture for the live map, where you can hover, search and switch links and colours. tools/graph_view.py builds both from any run's research_map.json.

Network map of 1,950 concepts one Eonrise run reached from a question about written instructions and repeated mistakes, in muted colours by cluster. The question sits near the centre. Labelled concepts around it include second language acquisition, visual word, lexical access, proactive interference, memory interference, cognitive flexibility, phonological processing and reading disorders.

  1. The question becomes one root topic, and every later search stays tied to it.
  2. Each round searches the scholarly sources and drops papers about something else.
  3. Terms, relations and stated limitations come from titles and abstracts. Each term joins the map as a parent, sibling or child of the root.
  4. Empty parts of the map send targeted searches back to step 2, up to --max-rounds.
  5. Papers from far fields that share the question's terms are kept apart and ranked. They are the point of the tool.
  6. The run writes the brief, the map and the graph, and says how much of the reachable literature it saw, so a thin map reads as unfinished.

Install

Eonrise needs Python 3.11 or newer and nothing else.

git clone https://github.com/Superstos/Eonrise
cd Eonrise
pip install .
eonrise --demo --out output

The demo runs offline on a sample of 99 papers about finding analogous solutions in distant fields. It writes the brief to output/report.md in about a second and saves nothing else.

Then ask your own question:

eonrise "how can written instructions prevent the same mistakes from repeating when every worker is new" --out output

Four sources run by default, with no key. Semantic Scholar and CORE join when you give their free key; docs/USAGE.md lists the environment variables.

Source Access
Crossref keyless
OpenAlex keyless, optional API key
Europe PMC keyless
DOAJ keyless
Semantic Scholar free API key, or --providers
CORE free API key, or --providers

Tech stack and why

  • Python standard library only. A research tool should install anywhere in one step, and zero dependencies means nothing to break, audit or pin.
  • Open scholarly APIs. Crossref, OpenAlex and Europe PMC cover most fields for free and return abstracts and topic hierarchies, which is where the cross-field links come from.
  • JSON and JSONL files on disk. The paper store and the synonym graph are plain files you can read, copy or delete, with no database to run.

Architecture

Path What it holds
eonrise/cli.py Command-line flags, stores and the printed summary
eonrise/engine.py The search loop: plan queries, fetch, filter, read, repair gaps
eonrise/providers.py One client per scholarly source, plus offline bundles and the HTTP cache
eonrise/evidence.py Papers in, grounded and ranked terms out
eonrise/distant_fields.py Distant papers that share the question's shape, ranked
eonrise/equivalence.py Learned synonyms across fields, used to widen later searches
eonrise/literature_coverage.py How much of the reachable literature a run has seen
eonrise/paper_store.py Every paper seen so far, so later runs start rich
eonrise/scheduling.py Which source to call next, and which are rate limited
eonrise/report.py The brief, the full report and the JSON files
tests/, benchmarks/ Unit tests, byte-for-byte output snapshots, and quality gates

Examples

These are real runs, copied unedited into examples/.

Question What it found in other fields
How can written instructions prevent the same mistakes from repeating when every worker is new? Jury instructions: courts test which wording of a one-time instruction changes what new jurors decide. That is a ready method for testing onboarding docs. Also nursing training on clinical mistakes.
Why do rules and plans keep growing in scope without being finished or removed? Management: Corporate Planning: An Executive Viewpoint (1981). Urban design: Cinema as a form of composition (2021).
How can a system retrieve analogous solutions from distant research fields? Link prediction in knowledge networks, from machine learning. This is the --demo run.

What it is good for:

  • Before designing something, to see which field already measured the failure you are about to hit.
  • When searches in your own field keep returning the same ten papers.
  • To find the words another field uses, so the next search reaches its literature.
  • As the research step for an AI coding agent: research_map.json gives it sources it can cite.

FAQ

Is the distant-field list just noise?

It is the main output. A paper from another field shows up because it shares the question's terms and topic structure. Read each one as "their solution, our version": what did they solve that has the same shape as my problem? Some will not map, and that is worth knowing too.

Does it read full papers?

No. It works from titles, abstracts, keywords and topic data returned by the sources. Fields whose abstracts are short or missing produce thinner maps.

Why did my run end with status "failed" and exit code 2?

No source returned papers about the question, often because a source timed out or rate limited the run. The brief names the sources that failed. Try again later, add a free API key, or pick sources with --providers.

What does it save on my machine?

Cached API responses, a paper store, learned synonyms, a run log and source limits, all under ~/.cache/eonrise/. docs/USAGE.md lists each file and the flag that turns it off. --demo saves nothing.

Where are the limits?

The topic filter still leans on shared words, so an ambiguous question lets unrelated papers in. Everyday questions with no technical words produce weaker maps. Live runs depend on outside APIs, so the same question returns different papers on different days.

Docs

  • docs/USAGE.md: bundle format, output files, environment variables, what is saved.
  • examples/: real briefs from different fields.
  • docs/SPEC.md: design history, benchmarks and rejected experiments, oldest first.
  • CHANGELOG.md: user-facing changes and renamed names.
  • CONTRIBUTING.md: checks to run and what a change should look like.

License

MIT, see LICENSE. Papers and abstracts returned by the sources keep their own licenses, so check a source's terms before sharing a saved paper store.

Metadata

Release files for eonrise 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eonrise 0.9.0
File Size Uploaded
eonrise-0.9.0.tar.gz 270.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eonrise 0.9.0
File Interpreter ABI Platform
eonrise-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 354.5 kB

Release files / eonrise-0.9.0.tar.gz

Download URL eonrise-0.9.0.tar.gz
Size 270.7 kB
Tags Source
SHA-256 checksum
How to use checksums
015656bfbd7cd0b59d24fe6dc7511af578d136462ec6dfd7131ed378128d20a5
BLAKE2b-256 checksum
How to use checksums
85748cece1663260729e5079ba4bb9cb95e22b009e1c3ec8b7d089a8b680f853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / eonrise-0.9.0-py3-none-any.whl

Download URL eonrise-0.9.0-py3-none-any.whl
Size 83.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
582c9078cca21f2eac820bb9cbad31712ae2237cd5dbb33affaa4d32af0032f5
BLAKE2b-256 checksum
How to use checksums
62193f974adb1ece74a2e23c1dc3dc24e989611de6ddb22bed4b5a024905a137
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

This release

0.9.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page