Terminal PDF analyzer with Groq-powered answers, vector search, and optional web search.
Project description
Paner Cli
Paner Cli
Features
- Fast ingestion: Drag-and-drop or paste a PDF path to index it. All chunking and embedding happens locally with
SentenceTransformer("all-MiniLM-L6-v2"). - Multi-document focus: Load as many PDFs as you need, list them with
list, and scope queries withuse <id|name|all>. - Rich answers: Responses preserve Markdown formatting and cite the source file/page in each chunk.
- Smart fallbacks: If a question can’t be answered from your docs, Paner offers to run a DuckDuckGo search and summarizes the best hits.
- Secure API handling: Groq API keys are validated and stored in your platform-specific config directory.
Requirements
- Python 3.11+
- Groq API key (starts with
gsk_…) - Internet access for Groq, initial model downloads, and optional web search
Installation
Paner is published as a standard Python package, so you can install it via pip/pipx/uv once the wheel/sdist is available:
pip install paner-cli
For local development clone the repo and install in editable mode:
git clone https://github.com/wiseman-umanah/paner.git
cd paner
pip install -e .
Getting Started
- Run the CLI:
paner
- On first launch Paner prompts for your Groq API key. It validates the key and stores it under
platformdirs.user_config_dir("paner", "wiseman-umanah"). - When you see
paner>>>, paste a PDF path (drag-and-drop works in most terminals). Paner will parse and index the document. - Ask questions in natural language. Answers reference the matched PDF chunks and respect the currently active document.
Session Commands
| Command | Description |
|---|---|
list |
Show every PDF loaded this session with an index, path, and active status. |
use <n> |
Focus questions on document n from the list output. |
use <name> |
Focus by file name (case-insensitive). |
use all |
Query across every ingested PDF. |
quit / exit |
Leave the CLI. |
The prompt automatically updates to paner[filename]>>> when a specific document is active.
Web Search Fallback
If a question can’t be answered locally Paner displays a Rich confirmation prompt:
I couldn't find this in your documents. Search the web? (y/N)
- Accept (
y) to run a DuckDuckGo query and summarize the top results. - Decline (
n) to keep the conversation offline.
Make sure the duckduckgo-search dependency is installed (it ships with Paner) and that your environment permits outbound requests.
Development
Useful tasks while hacking on Paner:
- Lint / format: configure
rufforblackas desired. - Run the CLI against sample PDFs to exercise chunking, vector search, and the Groq integration.
- Update
pyproject.tomlwhenever dependencies or metadata change.
See CONTRIBUTING.md for the full contribution workflow and pull-request expectations.
License
MIT License. See the LICENSE section in pyproject.toml for details. Feel free to adapt Paner for your own workflows.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paner_cli-0.1.0.tar.gz.
File metadata
- Download URL: paner_cli-0.1.0.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3729580ad4650d1d0dfac5ea7c2414c2a4bda7749f889b7a6cd509e1f45a77ac
|
|
| MD5 |
ac9614eed34586b864afbe398017eb79
|
|
| BLAKE2b-256 |
1997675d93c5da37d13d1647d654a17fa28872d52e554c176e091d3de711107d
|
File details
Details for the file paner_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paner_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e3f6e835ee93cfd9fa265f29c30ef99c6725bc325bf33ee4c69513e793a3484
|
|
| MD5 |
84560789be7682b69dc2e21573e4b24c
|
|
| BLAKE2b-256 |
7493f210af05a8d8d386edb5d16d9b983036a787b89081957f41feaed9206723
|