Skip to content

gpenazzi/higor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Higor

A terminal-based research assistant for tracking scientific literature.

Higor queries Semantic Scholar for recent papers matching your research interests, uses an LLM to summarise and rank them by relevance, and presents everything in a scrollable terminal UI. It runs on top of Claude Code — no separate API key required.

This project is entirely vibe coded using Claude Code.

Higor terminal UI


Features

  • Searches Semantic Scholar by topic keywords, recommendations, and citations of your own work
  • Journal sweep: fetches all recent papers from your explicitly followed journals, not just those matching keywords
  • LLM-powered summaries and impact-aware relevance ranking via Claude
  • Automatic venue prestige: Claude scores each journal's standing once (cached); no impact-factor data to supply yourself. Preprints (arXiv, bioRxiv…) are treated neutrally, never penalised
  • Tunable impact_weight knob — decide how much venue prestige and citations shift the ranking
  • Agentic chat (press c): ask about the current list, refine it in-session, run a new one-off search, or have Claude edit your profile. Searches and profile edits are proposed with an explanation and only run when you confirm (a / "yes"); applied profile changes auto-refresh
  • Per-week result caching — instant reopen, press r to force a refresh
  • Highlights papers that cite your own work
  • Profile-driven: one-time onboarding saves ~/.higor/profile.toml

What Higor is not

  • Not a background agent. The base run is a fixed pipeline (search → rank → display). Chat can refine results, search, and edit your profile on request, but Higor does not act on its own or learn across runs.
  • Bounded by Semantic Scholar. Search quality depends entirely on what S2 indexes and how it tags papers. Papers not in S2, papers with missing venue/author metadata, and papers from journals that S2 does not index will not appear. Some venues (e.g. certain Elsevier journals) have incomplete metadata in S2's free tier.
  • Venue prestige is an LLM estimate. Impact scores come from Claude's judgement (cached in ~/.higor/journal_ranks.json), not a citation database. They're consistent and editable, but not official impact factors.

Requirements

Installation

git clone https://github.com/gabrielepenazzi/higor.git
cd higor
uv sync

Quickstart

uv run higor

The first run launches an interactive onboarding and saves your profile to ~/.higor/profile.toml. Subsequent runs load the profile and go straight to the paper browser. Higor will fail at startup with a clear error if the claude CLI is not found on PATH.

Key bindings

Key Action
Navigate paper list
d Toggle full abstract for selected paper
o Open paper URL in browser
s Save paper to reading log
c Open/close chat with Claude
a Accept Claude's pending proposal (profile change or new search)
e Edit profile (re-runs onboarding)
r Force refresh (re-run pipeline)
q Quit

Profile

Edit ~/.higor/profile.toml directly at any time, or press e inside the UI to re-run the guided onboarding.

Key fields:

[topics]
primary   = ["density functional theory", "atomistic simulation"]
secondary = ["machine learning potentials"]

[search]
max_papers_per_week = 30
lookback_days       = 7
impact_weight       = 0.25   # 0 = ignore venue impact; higher = impact matters more

You can also change impact_weight conversationally — just tell the chat "make impact matter more" and apply the suggested change.

Running tests

uv run pytest -v

Project layout

higor/
  cli.py            — entry point, pipeline orchestration, loading spinner
  tui.py            — Textual terminal UI
  pipeline.py       — search → summarise → rank, per-week caching
  search.py         — Semantic Scholar search strategies (keyword, recommendations, citations, venue sweep)
  backend.py        — LLMBackend protocol + make_backend() factory
  llm.py            — rank_and_summarize (topical relevance + impact blend)
  prestige.py       — cached, LLM-derived venue prestige scores
  claude_backend.py — ClaudeCodeBackend (shells out to claude CLI)
  chat.py           — multi-turn agentic chat with full paper/profile context
  store.py          — reading log (JsonStore)
  profile.py        — onboarding Q&A, TOML load/save
  models.py         — Pydantic data models
prompts/            — LLM prompt templates (plain Markdown)
tests/              — pytest test suite

License

MIT © 2025 Gabriele Penazzi — see LICENSE.

About

Higor is an LLM based tool to track regularly the scientific publications relevant to your research

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages