Skip to main content

Terminal-native web UI for AI-assisted code and document review

Project description

inq

A lightweight, terminal-native web UI for reviewing and annotating code, PDFs, and markdown — together with AI.

ci codeql pypi python

inq is a self-hosted server. You run it on a remote machine, forward the port locally, and open it in a browser. It gives you a file explorer, a scrollable viewer for code / PDFs / markdown, and an annotation surface that humans and AI agents both write into. Threads stay anchored to the line (or page) you asked about, and persist per source.

┌─────────┬────────────────────────┬────────────────┐
│ FILES   │ src/inq/sandbox.py     │ THREADS        │
│  inq/   │  56  class Gitignore…  │  sandbox.py:56 │
│   ai.py │  57    def __init__(   │  › what does…  │
│   ▸ …   │  58      …             │  · It walks …  │
└─────────┴────────────────────────┴────────────────┘

Press @ on any line (or with a range selected) to ask the AI. Press # to leave a note — same anchor, no model roundtrip. Responses stream in, render as markdown, and stay threaded per anchor.

Quickstart

pip install inq-review                    # PyPI distribution; CLI is `inq`
inq init                                  # pick provider, paste API key, choose model
inq --port 9090 --root .                  # serve the current directory

On your local machine:

ssh -L 9090:localhost:9090 user@remote

Open http://localhost:9090.

Features

  • Anchored threads. Every question or note pins to a line range (code/markdown) or page (PDF). Threads persist per source at ~/.config/inq/threads/.
  • Two annotation modes. @ asks the AI (streaming, threaded follow-ups). # saves a comment-only note (no AI call). Both render side-by-side in the panel.
  • Multi-format viewers. CodeMirror for source, pdf.js for PDFs (cmaps + standard fonts bundled so math/ligatures render correctly), react-markdown for .md files.
  • Multi-source. Browse the local filesystem by default; click "Open Drive folder" in the UI to pick a Google Drive folder via OAuth.
  • Three providers. Anthropic, Google (Gemini), OpenAI — all with prompt-cached file context so follow-ups are cheap.
  • Markdown export. "Copy md" buttons in the UI, or inq notes --root <dir> for the same output from the CLI.

Providers

Provider Models Where to mint a key
Anthropic claude-sonnet-4-6, claude-opus-4-7, … https://console.anthropic.com/settings/keys
Google gemini-2.5-pro, gemini-2.5-flash, … https://aistudio.google.com/apikey
OpenAI gpt-4o, gpt-4o-mini, gpt-4.1, … https://platform.openai.com/api-keys

Credential resolution order: --api-key-file flag → <PROVIDER>_API_KEY env var → ~/.config/inq/config.toml (mode 0600) → macOS keychain (service inq).

Building from source

If you want to hack on the frontend, you'll need Node 20+:

git clone https://github.com/sutra-lab/inq && cd inq
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

cd web
npm install
npm run build           # produces src/inq/web/ — FastAPI mounts it at /
# or `npm run dev` for hot-reload on :5173 (backend stays on :9090)

Why

Reading code, specs, and documents deeply means asking questions inline — but most workflows force you into a chat window, losing context. Cursor and VS Code remote are heavy editor environments; Claude Code lives in the terminal, not in a scrollable viewer. inq is the small, focused tool that fits between them: zero-install on the client, browser-native, and built around asking questions in place.

See project-spec.md for the full design.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inq_review-0.1.2.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inq_review-0.1.2-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file inq_review-0.1.2.tar.gz.

File metadata

  • Download URL: inq_review-0.1.2.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for inq_review-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cc9447bf988ebb4240282580ca02517cc7ef77c7cdd9a8aaf6d0713e33da9aea
MD5 de141704b61914b79a26475f34801edc
BLAKE2b-256 4305545593a9e6eb6ea3ba1e0af79798e43dee2f94152940f82e2caeeb162748

See more details on using hashes here.

Provenance

The following attestation bundles were made for inq_review-0.1.2.tar.gz:

Publisher: release.yml on sutra-lab/inq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file inq_review-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: inq_review-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for inq_review-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 18d5f16a3049c62535fcb363ee5cde743175948e823e7a80a54b9dec7433db9d
MD5 eabeba83979e97b8474e78bc26cf2174
BLAKE2b-256 34db943b9a04f64219a7d7f4742ef8cfb6115f6efcaf17830e09751786f53a7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for inq_review-0.1.2-py3-none-any.whl:

Publisher: release.yml on sutra-lab/inq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page