# Do I need an account to start using Paperzilla?
Source: https://docs.paperzilla.ai/answers/account-required
You can start onboarding anonymously, then confirm account access during delivery save.
You can start in chat without full sign-in.
To complete delivery and access long-term project management, Paperzilla requires email-based account confirmation.
The flow is handled with magic-link email verification.
# Can Paperzilla fit team workflows?
Source: https://docs.paperzilla.ai/answers/can-paperzilla-fit-team-workflows
Yes. Teams can use shared project visibility, links, feeds, and digests to align on what to read.
Yes.
Teams often use Paperzilla by:
* keeping projects private during setup
* [sharing public project links](/guides/sharing-and-visibility) when ready
* using [digest emails](/guides/email-digests) for regular review cadence
* using [RSS/Atom](/guides/feeds) or [CLI](/guides/cli) for internal tooling
Use one project per team objective to keep ownership and signal quality clear.
# Can Paperzilla MCP return individual paper metadata and markdown?
Source: https://docs.paperzilla.ai/answers/can-paperzilla-mcp-return-individual-paper-metadata-and-markdown
Yes. Paperzilla MCP can return one paper's metadata with paper_get and paper_markdown.
Yes.
Paperzilla MCP supports two per-paper tools:
* `paper_get` returns one paper's metadata and status fields
* `paper_markdown` returns that paper's markdown when it is ready
If markdown is not ready yet, `paper_markdown` returns a structured result that tells you whether markdown generation was queued or unavailable.
For feed-wide search, use `feed_search`. That is separate from the per-paper tools on this page.
You can look up a paper by:
* paper UUID
* paper `short_id`
* feed item / `project_paper` UUID
* feed item / `project_paper` `short_id`
See:
* [Use Paperzilla with MCP](/guides/mcp)
* [MCP endpoint (developer appendix)](/api-reference/mcp)
# Can Paperzilla MCP search across an entire project feed?
Source: https://docs.paperzilla.ai/answers/can-paperzilla-mcp-search-across-an-entire-project-feed
Yes. Paperzilla MCP supports full-feed project search with the feed_search tool.
Yes.
Use the `feed_search` tool.
`feed_search` searches across the full project feed, not just currently visible items. It searches:
* title
* author names
* abstract text
* summary text
You can also add:
* `feedback_filter`
* `must_read`
* `limit`
* `offset`
Search is server-side and rank-first. It returns `items`, `limit`, `offset`, `has_more`, and `query`.
Paperzilla also accepts the legacy alias `feed.search`, but new MCP clients should use `feed_search`.
See:
* [Use Paperzilla with MCP](/guides/mcp)
* [MCP endpoint (developer appendix)](/api-reference/mcp)
# How do I change max papers per email?
Source: https://docs.paperzilla.ai/answers/change-max-papers
Edit project delivery settings and update Max papers per email.
1. Open your project.
2. Go to delivery settings.
3. Change **Max papers per email**.
4. Save project.
Paperzilla includes up to that number in each digest email. Some sends may include fewer papers.
# How do I copy my RSS/Atom URL?
Source: https://docs.paperzilla.ai/answers/copy-rss-atom
Use the Copy RSS/Atom URL action on your project page or use the CLI --atom flag.
From the web app:
1. Open your project.
2. Click **Copy RSS/Atom URL**.
3. Paste into your feed reader.
From the CLI:
```bash theme={null}
pz feed --atom
```
If copy fails, verify you are signed in and retry.
# How do I create my first project?
Source: https://docs.paperzilla.ai/answers/create-first-project
Create a Paperzilla project from chat, then save delivery to activate it.
1. Go to [paperzilla.ai](https://paperzilla.ai).
2. Click **See today's must-reads**.
3. Describe your research interests in chat.
4. Review categories and keywords.
5. Click **Set up delivery**.
6. Add project name and save.
After save, open the project page to read feed items and configure [sharing](/guides/sharing-and-visibility), [RSS/Atom](/guides/feeds), [summaries](/guides/summaries), and [email settings](/guides/email-digests).
# Should I choose daily or weekly digest emails?
Source: https://docs.paperzilla.ai/answers/daily-vs-weekly-digests
Daily keeps email close to new papers. Weekly keeps your feed live but bundles the best-scoring papers from the past week into one scheduled email.
Choose **Daily** or **Weekly** based on inbox cadence, not based on whether you want Paperzilla to keep working.
Your project feed stays current in both modes. Paperzilla continues processing papers, and digests are still created in the app either way.
## Choose daily if you want faster email
Use **Daily** when you want email soon after new relevant papers are ready.
* Daily does not mean a guaranteed email every calendar day.
* If no new papers qualify, no daily email is sent.
* This is the best fit if you want inbox delivery to stay close to discovery.
## Choose weekly if you want one review checkpoint
Use **Weekly** when you want fewer emails without losing the live feed.
* Your feed still updates continuously during the week.
* Paperzilla still creates digests in the app during the week.
* The weekly email selects the best-scoring papers from the past week, up to your max-paper limit.
* Higher-priority matches are ranked ahead of weaker related papers.
## Weekly timing and timezone
Weekly digests use the weekday and time you choose in delivery settings.
That schedule follows your **Preferred time zone** in [Account settings](https://paperzilla.ai/account/settings). If you want the weekly email to arrive in a different local timezone, update **Preferred time zone** there.
## If you want no emails at all
Set **Email frequency** to **Pause**.
That stops digest emails, but your feed and in-app digests still continue.
## Related
* [Email digests guide](/guides/email-digests)
* [How do I get less email?](/answers/less-email)
* [Why use both feed and email digests?](/answers/why-use-feed-and-email-both)
# How do I delete a project?
Source: https://docs.paperzilla.ai/answers/delete-project
Delete a Paperzilla project from the project page using the delete action.
1. Open the project.
2. Scroll to the delete section.
3. Click **Delete digest** (project delete action).
4. Confirm.
Deletion removes the project and related issues, papers, and settings.
This action is permanent.
# Do I need to code to use Paperzilla?
Source: https://docs.paperzilla.ai/answers/do-i-need-to-code
No. You can use Paperzilla entirely through the web app, with CLI as an optional advanced interface.
No.
You can create and manage projects fully in the [web app](https://paperzilla.ai).
Coding is optional and only needed if you want terminal or automation workflows via [CLI](/guides/cli) or [RSS/Atom feeds](/guides/feeds).
# Does Paperzilla support MCP?
Source: https://docs.paperzilla.ai/answers/does-paperzilla-support-mcp
Yes. You can connect MCP clients to Paperzilla and access projects, feeds, full-feed search, paper detail, and markdown.
Yes.
Paperzilla provides an MCP endpoint at:
`https://paperzilla.ai/api/mcp`
Use your per-user MCP API key in either of these forms:
* `Authorization: Bearer `
* `https://paperzilla.ai/api/mcp/?key=`
You can create or revoke this key from **MCP API key** in the top-right of the [dashboard](https://paperzilla.ai/dashboard).
If you are using Claude, see [Use Paperzilla MCP with Claude](/guides/claude).
Available tools today:
* `projects_list`
* `projects_get`
* `feed_get`
* `feed_search`
* `feed_atom_url`
* `paper_get`
* `paper_markdown`
There is also one optional prompt: `feed_title_filter`.
`feed_search` searches title, author, abstract, and summary text across the full project feed, not just currently visible items.
See setup and flow details in [MCP integration](/guides/mcp).
# What if my email already has a Paperzilla account?
Source: https://docs.paperzilla.ai/answers/existing-account-handoff
Paperzilla switches to account handoff flow and sends a sign-in link to continue setup safely.
If the email is already registered, Paperzilla does not create a duplicate account.
Instead, it sends a sign-in link to that account and restores your in-progress setup after login.
Use the same email inbox to complete the handoff cleanly.
# How do clients discover the Paperzilla MCP URL and tools?
Source: https://docs.paperzilla.ai/answers/how-do-clients-discover-paperzilla-mcp
How MCP clients find the Paperzilla server URL, discover available tools, and how this differs from OpenAPI.
The MCP server URL is discovered out-of-band.
For Paperzilla, that usually means your client or user starts with the documented endpoint from the docs, app setup instructions, or docs indexed via `llms.txt`:
`https://paperzilla.ai/api/mcp`
This URL does **not** come from OpenAPI.
## What happens after the client knows the URL
Once the client is pointed at the MCP endpoint and has a valid MCP API key, it can discover the callable surface from MCP itself.
In practice, the client initializes the MCP connection first, then calls:
1. `tools/list`
2. Optionally `prompts/list`
`tools/list` returns the available tool names plus input schemas, so the client can see what calls exist and what arguments they take.
That includes feed browsing and search tools such as:
* `feed_get`
* `feed_search`
* `paper_get`
* `paper_markdown`
That means MCP is self-describing after connection.
## Does MCP have its own endpoints?
Externally, no per-tool endpoints are required.
Paperzilla exposes one MCP endpoint at `/api/mcp`, and tool calls happen over that protocol connection.
Internally, those tools are backed by Paperzilla's own app logic and data access. A tool may read directly from internal services or data stores instead of calling the public REST API.
## How this relates to OpenAPI
OpenAPI documents a REST API.
MCP tool discovery works differently:
* OpenAPI tells a REST client which HTTP routes exist
* MCP tells an MCP client which tools exist through `tools/list`
So if you are building an MCP client for Paperzilla, you usually need:
* The MCP server URL
* An MCP API key
* Standard MCP calls like `initialize` and `tools/list`
Use OpenAPI only for Paperzilla's normal REST endpoints, not for MCP tool discovery.
See also:
* [Use Paperzilla with MCP](/guides/mcp)
* [MCP endpoint (developer appendix)](/api-reference/mcp)
# How do feedback signals work in the CLI?
Source: https://docs.paperzilla.ai/answers/how-do-feedback-signals-work-in-the-cli
CLI feedback is attached to a project recommendation, not to the canonical paper.
Feedback in the CLI is project-specific.
That means you leave feedback on a recommendation in one project, not on the canonical paper itself.
Use:
```bash theme={null}
pz feedback upvote
pz feedback upvote --json
pz feedback star
pz feedback downvote --reason not_relevant
pz feedback clear
pz feedback clear --json
```
`clear` is a subcommand, so the valid syntax is `pz feedback clear `.
`pz feedback ... --json` returns the feedback object. `pz feedback clear ... --json` returns a small confirmation envelope because the clear endpoint returns no body.
The feedback values map to the same ideas as the app:
* `upvote` = useful
* `star` = very useful
* `downvote` = not for me
Optional downvote reasons:
* `not_relevant`
* `low_quality`
This matters because the same canonical paper can appear in multiple projects. One project may treat it as highly relevant, while another may treat it as a poor fit.
Use [CLI](/guides/cli) for the full command reference, and [Why should I rate papers in the feed?](/answers/why-rate-papers-in-feed) for the product reason behind these signals.
# How do I find my project ID for CLI commands?
Source: https://docs.paperzilla.ai/answers/how-do-i-find-my-project-id-for-cli-commands
Run pz project list to get the Paperzilla project ID you need for feed, search, and project-scoped paper commands.
Run:
```bash theme={null}
pz project list
```
That prints a table with an `ID` column.
For scripts and AI agents, you can also use:
```bash theme={null}
pz project list --json
```
That returns a compact summary array with `id`, `name`, `mode`, and `visibility`.
Use that ID with project-scoped commands such as:
```bash theme={null}
pz feed
pz feed search --project-id --query "latent retrieval"
pz paper --project
pz feed --atom
```
Example flow:
```bash theme={null}
# 1. Find the project ID
pz project list
# 2. Search that project
pz feed search --project-id a1b2c3d4-e5f6-7890-abcd-ef1234567890 --query "proximity graphs"
```
If you want to search by project name instead of copying the ID manually, use the app or an MCP client. The CLI uses the project ID directly.
# How do I search a project feed from the CLI?
Source: https://docs.paperzilla.ai/answers/how-do-i-search-a-project-feed-from-the-cli
Use pz feed search with a project ID and query to search the full Paperzilla project feed from the terminal.
Use `pz feed search`.
If you do not know the project ID yet, get it first:
```bash theme={null}
pz project list
```
For scripts and AI agents, `pz project list --json` returns a compact summary array with `id`, `name`, `mode`, and `visibility`.
Then search the full feed for one project:
```bash theme={null}
pz feed search --project-id --query "latent retrieval"
```
Useful examples:
```bash theme={null}
# Prefix matching
pz feed search --project-id --query "Proxi"
# Only Must Read papers
pz feed search --project-id --query "retrieval" --must-read
# Only starred papers
pz feed search --project-id --query "retrieval" --feedback-filter starred
# JSON output for scripting
pz feed search --project-id --query "latent retrieval" --json
```
Notes:
* search covers the full project feed, not just already loaded browse pages
* search is rank-first
* query terms use prefix matching
* the JSON envelope includes `items`, `limit`, `offset`, `has_more`, and `query`
See [CLI guide](/guides/cli) for the full command reference.
# How do I search a project feed through Paperzilla MCP?
Source: https://docs.paperzilla.ai/answers/how-do-i-search-a-project-feed-through-paperzilla-mcp
Call feed_search with a project ID and query to search a full Paperzilla project feed through MCP.
Call `feed_search`.
At minimum, pass:
* `project_id`
* `q`
You can also pass:
* `feedback_filter`
* `must_read`
* `limit`
* `offset`
What comes back:
* `items`
* `limit`
* `offset`
* `has_more`
* `query`
Use `offset` and `limit` to fetch the next page only when `has_more` is `true`.
Search uses prefix matching, so `Proxi` matches `Proximity`.
If your MCP client still uses legacy dotted tool names, `feed.search` still works. New integrations should prefer `feed_search`.
See:
* [Use Paperzilla with MCP](/guides/mcp)
* [MCP endpoint (developer appendix)](/api-reference/mcp)
# How do I use the Paperzilla CLI with Claude?
Source: https://docs.paperzilla.ai/answers/how-do-i-use-paperzilla-cli-with-claude
Use the pz CLI directly in Claude Code to list projects, search feeds, inspect paper metadata, and fetch markdown.
Use `pz` directly in Claude Code.
The short version:
1. Install the [Paperzilla CLI](/guides/cli) and run `pz login`.
2. Make sure `pz` works in the same terminal environment where Claude Code runs.
3. Ask Claude Code to use `pz` for Paperzilla tasks.
Typical flow:
```bash theme={null}
pz project list --json
pz feed search --project-id --query "retrieval evaluation" --json
pz paper --json
pz rec --markdown
```
`pz project list --json` returns a compact project summary array, which is usually enough to pick the right `project-id`.
Use `pz paper` for canonical paper metadata.
Use `pz rec --markdown` after a project feed search when you want markdown in project context. That path can queue markdown generation if it is not ready yet.
You do not need a custom Paperzilla connector for this CLI path. Claude Code can already run shell commands in your workspace.
If you want the remote tool-calling path in Claude instead, use [Paperzilla MCP with Claude](/guides/claude).
For the full CLI command reference, see [CLI guide](/guides/cli).
## Related
* [Use Paperzilla MCP with Claude](/guides/claude)
* [CLI guide](/guides/cli)
* [What is the difference between a canonical paper and a recommendation?](/answers/what-is-the-difference-between-a-canonical-paper-and-a-recommendation)
# How do I use the Paperzilla CLI with Codex?
Source: https://docs.paperzilla.ai/answers/how-do-i-use-paperzilla-cli-with-codex
Use the pz CLI directly in Codex to list projects, search feeds, inspect paper metadata, and fetch markdown.
Use `pz` directly in Codex.
The short version:
1. Install the [Paperzilla CLI](/guides/cli) and run `pz login`.
2. Make sure `pz` works in the same environment where Codex runs.
3. Ask Codex to use `pz` for Paperzilla tasks.
Typical flow:
```bash theme={null}
pz project list --json
pz feed search --project-id --query "retrieval evaluation" --json
pz paper --json
pz rec --markdown
```
`pz project list --json` returns a compact project summary array, which is usually enough to pick the right `project-id`.
Use `pz paper` for canonical paper metadata.
Use `pz rec --markdown` after a project feed search when you want markdown in project context. That path can queue markdown generation if it is not ready yet.
You do not need a plugin for this CLI path. Codex can already run shell commands in your workspace.
A Codex skill is optional. Add one only if you want Codex to remember when to use `pz` without extra prompting.
For the full walkthrough, see [Use Paperzilla with Codex](/guides/codex).
## Related
* [Use Paperzilla with Codex](/guides/codex)
* [CLI guide](/guides/cli)
* [What is the difference between a canonical paper and a recommendation?](/answers/what-is-the-difference-between-a-canonical-paper-and-a-recommendation)
# How do I use the Paperzilla CLI with OpenClaw?
Source: https://docs.paperzilla.ai/answers/how-do-i-use-paperzilla-cli-with-openclaw
Install the Paperzilla skill in OpenClaw so it can use the pz CLI to list projects, search feeds, inspect paper metadata, and fetch markdown.
Install the Paperzilla skill in OpenClaw, then let OpenClaw use `pz`.
The short version:
1. Install the [Paperzilla CLI](/guides/cli) and run `pz login`.
2. In OpenClaw, install the Paperzilla skill:
```bash theme={null}
openclaw skills install paperzilla
```
If you already use the separate ClawHub CLI, this also works:
```bash theme={null}
clawhub install paperzilla
```
After that, ask OpenClaw to use Paperzilla in the workspace where you installed the skill.
OpenClaw can then use the same CLI workflows:
```bash theme={null}
pz project list --json
pz feed search --project-id --query "retrieval evaluation" --json
pz paper --json
pz rec --markdown
```
`pz project list --json` returns a compact project summary array, which is usually enough to pick the right `project-id`.
Use `pz paper` for canonical paper metadata.
Use `pz rec --markdown` after a project feed search when you want markdown in project context. That path can queue markdown generation if it is not ready yet.
For the full setup flow, see [Use the Paperzilla CLI with OpenClaw](/guides/openclaw).
## Related
* [Use the Paperzilla CLI with OpenClaw](/guides/openclaw)
* [Does Paperzilla have an OpenClaw skill?](/answers/openclaw-skill)
* [CLI guide](/guides/cli)
# How do I use Paperzilla MCP with Claude?
Source: https://docs.paperzilla.ai/answers/how-do-i-use-paperzilla-mcp-with-claude
Add Paperzilla as a custom connector in Claude, then let Claude use projects, full-feed search, paper metadata, and markdown from your Paperzilla account.
Add Paperzilla as a custom connector in Claude.
The short version:
1. Create or copy your **MCP API key** from the [dashboard](https://paperzilla.ai/dashboard).
2. In Claude, open **Settings** > **Connectors**.
3. Add a custom connector named `Paperzilla`.
4. Use `https://paperzilla.ai/api/mcp/?key=pzmcp_...` as the connector URL.
5. After setup, switch the connector to **Always allow** so Claude can use the tools without asking on every call.
Once connected, Claude can use:
* `projects_list`
* `projects_get`
* `feed_get`
* `feed_search`
* `feed_atom_url`
* `paper_get`
* `paper_markdown`
Use `feed_search` when you want Claude to search across the whole project feed by title, author, abstract, or summary text.
For the full walkthrough, see [Use Paperzilla MCP with Claude](/guides/claude).
# How is Paperzilla different from Google Scholar alerts?
Source: https://docs.paperzilla.ai/answers/how-is-paperzilla-different-from-google-scholar-alerts
Paperzilla is organized around project workflows with relevance tuning and multi-channel delivery.
Google Scholar alerts are useful for broad discovery.
Paperzilla focuses on ongoing project workflows:
* Topic definitions with include/exclude tuning
* Must Read vs Related prioritization
* Controlled digest volume
* App, RSS/Atom, CLI, and email delivery from one project model
It is optimized for continuous filtering, not just notification.
# How is Paperzilla different from basic RSS alerts?
Source: https://docs.paperzilla.ai/answers/how-is-paperzilla-different-from-rss-alerts
Paperzilla adds project-level relevance, prioritization, and multi-surface delivery beyond simple feed subscriptions.
Basic RSS alerts are usually source-first and keyword-first.
Paperzilla is project-first:
* You define a research intent as a project.
* Papers are prioritized by relevance for that project.
* You get Must Read filtering and delivery controls.
* The same project is available in app, RSS/Atom, CLI, and email.
# How do AI summaries work in Paperzilla?
Source: https://docs.paperzilla.ai/answers/how-summaries-work
Generate structured AI summaries per paper and browse them in project summary views.
Paper summaries are generated per paper on demand.
A summary can include:
* ELI5
* Overview
* Research question
* Methodology
* Results
* Limitations
* Takeaway
* Conflicts of interest
You can open summaries from individual paper pages or from the project-level summaries list.
# Questions and answers
Source: https://docs.paperzilla.ai/answers/index
Common Paperzilla questions, with one focused answer per page.
Use this section for fast answers.
Each page covers one user question so you can link or cite it directly.
## What is Paperzilla?
## MCP
## Research briefs
## Projects and setup
## Feed and delivery
## RSS/Atom and CLI
## Sharing and public projects
## Summaries
## Account and access
## Data and coverage
# Is Paperzilla for humans or AI agents?
Source: https://docs.paperzilla.ai/answers/is-paperzilla-for-ai-agents
Paperzilla supports both human reading workflows and agent/programmatic workflows.
Both.
For humans, Paperzilla provides app feed and email digests.
For agent or script workflows, Paperzilla provides:
* [CLI (`pz`)](/guides/cli)
* [RSS/Atom feeds](/guides/feeds)
* [MCP (`/api/mcp`)](/guides/mcp) with read-only tools
See [MCP integration](/guides/mcp).
You can use both modes on the same project.
# Is Paperzilla only for ML or biomed?
Source: https://docs.paperzilla.ai/answers/is-paperzilla-only-for-ml-or-biomed
No. Paperzilla supports multiple research categories; choose projects based on your own topic scope.
No.
Paperzilla supports multiple categories and is built around project definitions rather than one fixed discipline.
You choose categories and keywords for your field, then tune relevance over time.
# How do I get less email?
Source: https://docs.paperzilla.ai/answers/less-email
Reduce Paperzilla email volume by tuning relevance, switching to weekly digests, or pausing email delivery.
Open the [dashboard](https://paperzilla.ai/dashboard) and select the project sending too much email. Then work through the options below, starting with the ones that improve quality before falling back to pausing delivery.
## Option 1: tune the project (recommended)
Click **Edit project** to adjust relevance settings. These changes improve what the project finds — not just how much it sends.
**Remove irrelevant categories**
If your project covers categories that are too broad for your actual focus, remove them. Fewer categories means fewer off-topic papers enter the feed.
**Tighten the interest description**
The description tells Paperzilla what you care about. A vague description produces a broad feed. Make it specific.
For example, instead of:
> Machine learning and neural networks
Try:
> Efficient transformer architectures for on-device inference, focusing on quantization and pruning techniques. Only include papers where on-device or edge deployment is a primary concern. If a paper is about general model efficiency, data centers, or cloud inference without an on-device angle, do not select it.
The more precise your description, the more selective the matching.
**Remove boost keywords that are too broad**
Review your include (boost) keywords and remove any that are pulling in papers you don't want. Boost keywords increase relevance scores — if a term is too general, it will surface too many papers.
**Add exclude keywords**
Exclude keywords are hard filters: any paper containing an excluded term is removed from your feed entirely.
Use them carefully and only for terms you are confident you never want to see. A few targeted exclude terms can significantly cut noise.
## Option 2: turn off adjacent papers
If **Include adjacent papers** is enabled, Paperzilla surfaces related but non-direct matches alongside your top results. Turning this off limits the feed to papers that match your project more directly.
In **Edit project**, set **Include adjacent papers** to **No**.
## Option 3: switch from daily to weekly
If your matches are good but the inbox cadence is too high, change **Email frequency** from **Daily** to **Weekly**.
Weekly only changes the emails:
* your feed keeps updating continuously
* Paperzilla still creates digests in the app
* the weekly email sends the best-scoring papers from the past week, up to your max-paper limit
This is a good middle ground when you still want a regular digest but do not want as many emails.
## Option 4: pause email delivery
If tuning is not enough and you want to stop receiving emails entirely, go to **Edit Email Delivery** and set **Email frequency** to **Pause email delivery**.
Digests are still created and visible in the app — they just won't be sent to your inbox. Digests in this state show a **Paused** status badge.
If you pause email delivery, consider setting up an [RSS/Atom feed](/guides/feeds) in a feed reader instead. You keep full access to new papers without inbox pressure.
# How does magic-link login work?
Source: https://docs.paperzilla.ai/answers/magic-link-login
Paperzilla signs you in with one-time email links or codes instead of passwords.
Paperzilla sends a one-time login email to your address.
Typical steps:
1. Enter your email.
2. Open the Paperzilla email.
3. Click the sign-in link or enter the code.
4. Continue in app.
If the link opens the wrong account context, sign out and repeat with the intended email.
# What do Must Read and Related mean?
Source: https://docs.paperzilla.ai/answers/must-read-vs-related
Paperzilla labels papers by relevance class: Must Read for top matches and Related for secondary matches.
Paperzilla assigns a relevance class per paper within a project.
* **Must Read**: strongest matches to your project intent
* **Related**: useful but lower-priority matches
The **Must Read** feed filter shows only top-priority papers.
The **All** filter includes both classes.
# Does Paperzilla have an OpenClaw skill?
Source: https://docs.paperzilla.ai/answers/openclaw-skill
Install the Paperzilla skill from ClawHub so AI agents can browse or search your research feeds directly.
Yes. The Paperzilla CLI is published as an [OpenClaw skill on ClawHub](https://clawhub.ai/pors/paperzilla).
If you use current OpenClaw, install it with:
```bash theme={null}
openclaw skills install paperzilla
```
If you already use the separate ClawHub CLI, this also works:
```bash theme={null}
clawhub install paperzilla
```
If your OpenClaw version is older and `openclaw skills install paperzilla` fails because `skills` does not support subcommands yet, use `clawhub install paperzilla`.
Once installed, AI agents (Claude Code, Cursor, Windsurf, and others that support the AgentSkills standard) can list projects, browse feeds, search full feeds, and filter papers using `pz` commands.
You still need the `pz` CLI installed and authenticated — the skill teaches the agent how to use it.
To update the skill later, use `openclaw skills update paperzilla` or `clawhub update paperzilla`.
## Related
* [CLI guide](/guides/cli)
* [Use the Paperzilla CLI with OpenClaw](/guides/openclaw)
* [Agent workflows](/guides/agent-workflows)
* [MCP integration](/guides/mcp)
# How do I pause email digests without stopping my project?
Source: https://docs.paperzilla.ai/answers/pause-email-digests
Set email frequency to Pause to stop digest emails while keeping paper discovery and your feed running.
1. Open the project page.
2. Go to **Delivery settings**.
3. Set **Email frequency** to **Pause**.
4. Save.
Paperzilla keeps discovering papers and updating your feed, but no digest emails are sent. Digests are still created so you can browse them in the app — they show a **Paused** status badge instead of **Sent**.
To resume emails, change the frequency back to your preferred schedule and save.
This is different from pausing the entire project. A paused project stops discovery altogether. Pausing email delivery only stops the emails — your feed, RSS/Atom, and CLI access stay active.
## Related
* [How do I pause a project?](/answers/pause-project)
* [How do I get less email?](/answers/less-email)
* [Can I use Paperzilla without email?](/answers/read-without-email)
# How do I pause a project?
Source: https://docs.paperzilla.ai/answers/pause-project
Use the Pause project toggle in project configuration to stop discovery and digest delivery.
1. Open the project page.
2. Find **Pause project** in configuration.
3. Turn it on.
While paused, Paperzilla stops discovering new papers for that project, and feed updates plus email digests are paused.
Turn the toggle off to resume.
If you only want to stop emails but keep discovery and your feed running, set **Email frequency** to **Pause** in delivery settings instead. See [How do I pause email digests without stopping my project?](/answers/pause-email-digests)
# Why can't others open my shared link?
Source: https://docs.paperzilla.ai/answers/private-link-not-working
Shared links usually fail for others when project visibility is private.
The most common reason is project visibility.
If the project is private, non-owners cannot access shared issue or paper links.
Fix:
1. Open project configuration.
2. Switch visibility to public.
3. Re-share the link.
If you need to keep it private, invite others through your own internal process instead of public links.
# Why does my project have no papers yet?
Source: https://docs.paperzilla.ai/answers/project-no-papers
New or narrow projects can take time to fill; adjust scope and settings if needed.
Common reasons:
* Project is still processing
* Project is paused
* Filters are too strict
* Topic is very narrow
Try this:
1. Wait for the next processing cycle.
2. Verify the project is active, not paused.
3. Broaden interest text slightly.
4. Remove harsh exclude keywords.
5. Enable adjacent papers.
# How do public projects work?
Source: https://docs.paperzilla.ai/answers/public-projects-work
Public projects can be viewed and reused by others, while private projects remain owner-only.
Public projects are discoverable through [Paperzilla's public browsing surface](https://paperzilla.ai/public-digests).
When public:
* Shared links work for anyone
* Project content can appear in public listings
When private:
* Only the owner account can access content
You can switch visibility anytime.
# Can I use Paperzilla without email digests?
Source: https://docs.paperzilla.ai/answers/read-without-email
Yes. You can read via in-app feed, RSS/Atom, or CLI even if email digests are not your primary workflow.
Yes.
Email digests are optional as a reading surface.
You can use:
* [In-app feed](/guides/feed-in-app)
* [RSS/Atom feed URL](/guides/feeds) in a reader
* [CLI (`pz`)](/guides/cli)
If you do not want delivery for a period, pause the project.
# Can I use Claude Cowork and Slack for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-claude-cowork-slack
Use Claude Cowork, Slack, and Paperzilla MCP to create scheduled academic paper briefs for a Slack channel.
Yes.
This is the strongest Claude Cowork messenger workflow. Use Paperzilla MCP for project and feed data, Cowork scheduled tasks for the recurring brief, and Slack for discussion or delivery.
Start with a Slack-ready draft. Move to direct Slack sending only after the brief format and Slack connector permissions are working.
For the full workflow, see [Use Claude in Slack for research briefs](/guides/claude-slack-briefs).
## Related
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
* [Use Paperzilla MCP with Claude](/guides/claude)
* [How do I use Paperzilla MCP with Claude?](/answers/how-do-i-use-paperzilla-mcp-with-claude)
# Can I use Claude Cowork and Microsoft Teams for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-claude-cowork-teams
Use Claude Cowork with Paperzilla MCP and Microsoft 365 Teams context to prepare Teams-ready academic paper briefs.
Yes for Teams-aware drafts. Direct Teams delivery depends on the connector or automation you use.
Claude's [Microsoft 365 connector](https://support.claude.com/en/articles/12542951-enable-and-use-the-microsoft-365-connector) can use Teams chat discussions as context. Combine that with Paperzilla MCP in Claude Cowork to prepare a Microsoft Teams-ready academic paper brief.
Use [Claude in Slack for research briefs](/guides/claude-slack-briefs) as the closest detailed Cowork guide. Replace Slack with Microsoft 365 or Teams context, and keep the output as a Teams-ready draft unless you have tested direct Teams delivery.
If direct Teams channel delivery is the main requirement, [OpenClaw and Microsoft Teams](/answers/research-brief-openclaw-teams) may be a better fit.
## Related
* [Use Paperzilla MCP with Claude](/guides/claude)
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
* [Can I use OpenClaw and Microsoft Teams for academic paper briefs?](/answers/research-brief-openclaw-teams)
# Can I use Claude Cowork and Telegram for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-claude-cowork-telegram
Use Claude Cowork to prepare Telegram-ready Paperzilla academic paper briefs, with Telegram delivery through Claude Code Channels, OpenClaw, or another tested bridge.
Yes, but be precise about which Claude surface is doing the Telegram part.
Use Claude Cowork with Paperzilla MCP to create a Telegram-ready academic paper brief.
For Telegram delivery, Anthropic documents [Claude Code Channels](https://code.claude.com/docs/en/channels) with a Telegram plugin. That sends Telegram messages into a running Claude Code session and lets Claude reply through Telegram.
That is not exactly the same as a Cowork scheduled task posting directly to Telegram. For a recurring Cowork brief, keep the output as a Telegram-ready draft unless you have tested Claude Code Channels, OpenClaw, or another Telegram bridge in your own setup.
If Telegram delivery is the main requirement, use [OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs) or the Claude Code Channels setup. If Claude Cowork is the main requirement, use [Claude in Slack for research briefs](/guides/claude-slack-briefs) as the closest detailed Cowork guide, but replace Slack with your tested Telegram delivery path.
## Related
* [Use Paperzilla MCP with Claude](/guides/claude)
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
# Can I use Codex and Slack for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-codex-slack
Use Codex with Paperzilla MCP to prepare Slack-ready academic paper briefs, with direct Slack workflow support depending on the Codex Slack setup.
Yes for Slack-ready drafts and Codex tasks from Slack. Direct Paperzilla brief delivery depends on your Codex Slack setup.
OpenAI documents [Codex in Slack](https://developers.openai.com/codex/integrations/slack) as a way to start Codex cloud tasks from Slack channels and threads. For Paperzilla briefs, Codex still needs access to Paperzilla through Paperzilla MCP or the `pz` CLI.
Use this combination when you want Codex to analyze papers and produce a Slack-ready academic paper brief.
If you want the cleanest Slack-native workflow today, use [Claude in Slack for research briefs](/guides/claude-slack-briefs). If you specifically want Codex, start with [Use Paperzilla with Codex](/guides/codex) and use [Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs) as the closest detailed guide, replacing Teams with Slack.
Do not assume a Slack-started Codex task can see the same local Paperzilla MCP setup as your Codex desktop session. Test the Paperzilla access path before scheduling or sharing the workflow.
## Related
* [Use Paperzilla with Codex](/guides/codex)
* [Use Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs)
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
# Can I use Codex and Microsoft Teams for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-codex-teams
Use Codex with Paperzilla MCP to prepare Microsoft Teams-ready academic paper briefs, with Teams context and posting depending on app permissions.
Yes for Microsoft Teams-ready drafts. Teams context and direct posting depend on the Microsoft Teams app or plugin and your workspace permissions.
Rely on this version of the workflow: Codex can use Paperzilla MCP to prepare academic paper briefs for Microsoft Teams. If the [Microsoft Teams app for ChatGPT](https://help.openai.com/en/articles/12552368-microsoft-teams-app-for-chatgpt) or Codex plugin is connected and the required actions are enabled, Codex may also use Teams context or post after confirmation.
Start with drafts. Do not assume direct Teams posting until you have tested it in your own workspace.
For the full workflow, see [Use Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs).
## Related
* [Use Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs)
* [Use Paperzilla with Codex](/guides/codex)
* [Use Paperzilla with MCP](/guides/mcp)
# Can I use Codex and Telegram for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-codex-telegram
Use Codex to prepare Paperzilla academic paper briefs for Telegram, with delivery handled by OpenClaw or another Telegram bridge.
Not as a native Codex-to-Telegram delivery workflow.
Use Codex with Paperzilla MCP to create a Telegram-ready academic paper brief. Then send it manually, through your own Telegram automation, or through OpenClaw.
Use this combination when Codex is your analysis environment and Telegram is only the place where the brief should end up.
Use [OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs) if Telegram delivery is the main requirement. Use [Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs) as the closest Codex guide, but replace the Teams draft with a Telegram-ready draft.
Do not assume Codex can post to Telegram directly unless you add a separate Telegram bridge.
## Related
* [Use Paperzilla with Codex](/guides/codex)
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [Agent workflows](/guides/agent-workflows)
# Can I use OpenClaw and Slack for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-openclaw-slack
Use OpenClaw, Slack, and the Paperzilla CLI to create scheduled academic paper briefs.
Yes.
OpenClaw supports [Slack as a channel](https://docs.openclaw.ai/channels/slack). Use the same Paperzilla mechanics as the Telegram workflow: OpenClaw runs the schedule, the Paperzilla CLI (`pz`) reads your project feed, and Slack receives the brief.
Use [OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs) as the closest detailed guide. Replace the Telegram channel setup and delivery target with your OpenClaw Slack channel setup.
This is a good fit when you want a self-hosted gateway that can send the same Paperzilla academic paper brief workflow to multiple chat tools.
## Related
* [Use the Paperzilla CLI with OpenClaw](/guides/openclaw)
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [How do I use the Paperzilla CLI with OpenClaw?](/answers/how-do-i-use-paperzilla-cli-with-openclaw)
# Can I use OpenClaw and Microsoft Teams for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-openclaw-teams
Use OpenClaw, Microsoft Teams, and the Paperzilla CLI to create scheduled academic paper briefs when the Teams channel is configured.
Yes, if the Microsoft Teams channel or plugin is configured in OpenClaw.
OpenClaw can use [Teams as a channel](https://docs.openclaw.ai/channels/msteams), but setup is more involved than Telegram or Slack. Teams may require a Microsoft Teams app package, Azure Bot configuration, and Microsoft Graph permissions depending on the features you need.
The Paperzilla part stays the same: OpenClaw runs the schedule, the Paperzilla CLI (`pz`) reads your project feed, and OpenClaw sends the academic paper brief to the configured Teams target.
Use [OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs) as the closest detailed guide. Replace the Telegram channel setup and delivery target with the OpenClaw Microsoft Teams channel.
## Related
* [Use the Paperzilla CLI with OpenClaw](/guides/openclaw)
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [How do I use the Paperzilla CLI with OpenClaw?](/answers/how-do-i-use-paperzilla-cli-with-openclaw)
# Can I use OpenClaw and Telegram for academic paper briefs?
Source: https://docs.paperzilla.ai/answers/research-brief-openclaw-telegram
Use OpenClaw, Telegram, and the Paperzilla CLI to create scheduled academic paper briefs.
Yes.
This is the most direct Telegram workflow. OpenClaw runs the agent and schedule, Telegram is the chat or delivery channel, and the Paperzilla CLI (`pz`) provides project, feed, paper metadata, and markdown access.
For the full workflow, see [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs).
## Related
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [Use the Paperzilla CLI with OpenClaw](/guides/openclaw)
* [How do I use the Paperzilla CLI with OpenClaw?](/answers/how-do-i-use-paperzilla-cli-with-openclaw)
# Is my RSS/Atom URL private?
Source: https://docs.paperzilla.ai/answers/rss-url-security
Paperzilla RSS/Atom URLs contain personal tokens and should be treated as secrets.
Your project feed URL contains a personal token.
Treat it like a password:
* Do not post it publicly.
* Do not commit it to public repos.
* Share only with trusted tools and readers.
Anyone with the URL can read that feed.
# How do I search inside a project feed?
Source: https://docs.paperzilla.ai/answers/search-project-feed
Use feed search to filter papers by title, author, abstract, and summary text.
You have three main ways to search a project feed:
1. In the app, open a project from the [Dashboard](https://paperzilla.ai/dashboard) and use the search box above the paper list.
2. In the CLI, run `pz feed search --project-id --query ""`.
3. In MCP, use `feed_search`.
All three paths search by title, author name, abstract text, or summary terms.
You can combine search with the feedback filters to focus on:
* **No feedback**
* **Useful**
* **Very useful**
* **Not for me**
If you want to do the same thing through Paperzilla MCP, see [Can Paperzilla MCP search across an entire project feed?](/answers/can-paperzilla-mcp-search-across-an-entire-project-feed).
If you want the CLI-specific steps, see [How do I search a project feed from the CLI?](/answers/how-do-i-search-a-project-feed-from-the-cli).
# How do I share a single paper?
Source: https://docs.paperzilla.ai/answers/share-paper
Use the Share action on a paper page and ensure project visibility allows access.
1. Open the paper page in your project.
2. Click **Share**.
3. Copy the paper link.
If the parent project is private, make it public to allow others to open the shared paper.
# How do I share a project?
Source: https://docs.paperzilla.ai/answers/share-project
Use the project share modal and make the project public if needed.
1. Open the project issue or overview page.
2. Click **Share**.
3. Copy the link or use direct share options.
If your project is private, Paperzilla prompts you to make it public first.
# Which paper sources does Paperzilla cover?
Source: https://docs.paperzilla.ai/answers/sources-covered
Paperzilla currently includes major preprint sources such as arXiv, medRxiv, bioRxiv, ChemRxiv, and ChinaXiv.
Paperzilla feed and cards currently surface papers from sources including:
* arXiv
* medRxiv
* bioRxiv
* ChemRxiv
* ChinaXiv
Source badges appear on paper cards so you can see origin at a glance.
# How do I subscribe to a public project?
Source: https://docs.paperzilla.ai/answers/subscribe-public-project
Use Subscribe on a public project to preload setup and create your own project copy.
1. Open a public project page.
2. Click **Subscribe**.
3. Review the preloaded setup in chat.
4. Adjust categories and keywords.
5. Save as your own project.
You are not modifying the original owner's project.
# Why is my summary stuck on processing or failed?
Source: https://docs.paperzilla.ai/answers/summary-stuck
Summary jobs can be queued or fail temporarily; retry and check access/account state.
If status is `queued` or `processing`, wait and refresh later.
If status is `failed`:
1. Click retry on the paper page.
2. Confirm you are signed into the project-owning account.
3. Try again after a short delay.
Most failures are transient and succeed on retry.
# How do I tune include and exclude keywords?
Source: https://docs.paperzilla.ai/answers/tune-keywords
Use include keywords to boost relevant matches and exclude keywords to reduce noise in your project.
Use **include** keywords for terms that should push papers up in relevance.
Use **exclude** keywords for terms that should filter papers out.
Best practice:
1. Start with 3-10 specific include terms.
2. Add exclude terms only for recurring noise.
3. Review results for a few cycles.
4. Adjust gradually, not all at once.
If your feed is too empty, remove overly broad exclude terms first.
# What output formats does Paperzilla provide?
Source: https://docs.paperzilla.ai/answers/what-are-paperzilla-output-formats
Paperzilla outputs project results in app feed, RSS/Atom URLs, CLI output, MCP tools, and email digest format.
Paperzilla provides project results in five main formats:
* [In-app feed](/guides/feed-in-app)
* [RSS/Atom feed URL](/guides/feeds)
* [CLI output](/guides/cli) (`pz`, including feed browsing, full-feed search, JSON mode, one-paper detail, and raw markdown)
* [MCP tools](/guides/mcp) for project data, feed data, one-paper metadata, and paper markdown
* [Email digest](/guides/email-digests)
You can choose one surface or use multiple surfaces in parallel.
# What do Useful, Very useful, and Not for me mean?
Source: https://docs.paperzilla.ai/answers/what-do-useful-very-useful-and-not-for-me-mean
Understand the feedback levels in the project feed and when to use each one.
These labels are your feedback signals for a project feed.
* **Useful**: a solid match for the project
* **Very useful**: one of the strongest matches in the feed
* **Not for me**: not a fit for this project
Use **Very useful** sparingly. It works best as a high-confidence signal for papers you would want surfaced again.
When you choose **Not for me**, you can add a reason:
* **Off-topic**
* **Low quality**
Those reasons help you explain why the paper does not belong, and they provide a clearer negative signal for future recommendations.
# What does Paperzilla do?
Source: https://docs.paperzilla.ai/answers/what-does-paperzilla-do
Paperzilla continuously finds and prioritizes papers for your projects, then delivers them across multiple reading surfaces.
Paperzilla lets you define research topics as projects.
For each project, it continuously surfaces relevant papers and lets you consume them through:
* [In-app feed](/guides/feed-in-app)
* [RSS/Atom URL](/guides/feeds)
* [CLI (`pz`)](/guides/cli)
* [Email digests](/guides/email-digests)
It also supports AI summaries for deeper paper review.
# What is a project in Paperzilla?
Source: https://docs.paperzilla.ai/answers/what-is-a-project
A Paperzilla project is your persistent research intent with feed and email delivery settings.
A project is the core unit in Paperzilla.
It stores your topic, categories, interest text, include/exclude keywords, and delivery settings.
A single project can be consumed in four ways:
* [In-app feed](/guides/feed-in-app)
* [RSS/Atom URL](/guides/feeds)
* [CLI (`pz`)](/guides/cli)
* [Email digests](/guides/email-digests)
If you track multiple research areas, create one project per area.
# What is the difference between a canonical paper and a recommendation?
Source: https://docs.paperzilla.ai/answers/what-is-the-difference-between-a-canonical-paper-and-a-recommendation
A canonical paper is the shared Paperzilla paper record. A recommendation is that paper as it appears inside one project.
In Paperzilla, a canonical paper and a recommendation are not the same thing.
A canonical paper is the shared paper record.
* it has a Paperzilla paper ID
* it contains the paper metadata itself
* you open it with `pz paper `
* it can be read without logging in
A recommendation is that same paper as it appears inside one of your projects.
* it has a recommendation ID (`project_paper.id` / short ID)
* it includes project-specific context such as relevance, summary, personalized note, and feedback
* you open it with `pz rec `
* it requires login because it belongs to one of your projects
You can also bridge between the two:
```bash theme={null}
pz paper --project
```
That resolves the canonical paper inside one project and shows the recommendation context for that project.
This split is important because one canonical paper can appear in multiple projects with different summaries, scores, and feedback.
# What problem does Paperzilla solve?
Source: https://docs.paperzilla.ai/answers/what-problem-paperzilla-solves
Paperzilla helps you avoid missing important new papers while reducing low-value reading noise.
Paperzilla solves a two-sided research problem:
* You do not want to miss important new papers.
* You also do not want to spend hours on weak matches.
It addresses this by combining project-level relevance, Must Read prioritization, and controlled delivery across [feed](/guides/feed-in-app), [RSS/Atom](/guides/feeds), [CLI](/guides/cli), and [email digests](/guides/email-digests).
# When should I create multiple projects?
Source: https://docs.paperzilla.ai/answers/when-should-i-create-multiple-projects
Create separate projects when topics, methods, or audiences need different filters and delivery settings.
Create multiple projects when you need different:
* topic scopes
* keyword filters
* delivery settings
* visibility settings
A good rule: one project per distinct research question or monitoring objective.
See [Projects](/guides/projects) for setup details.
# Which feed readers work with Paperzilla?
Source: https://docs.paperzilla.ai/answers/which-feed-readers
Any feed reader that accepts Atom or RSS URLs works with Paperzilla project feeds.
Paperzilla feed URLs work with standard feed readers that accept Atom or RSS links.
Examples:
* Feedly
* NetNewsWire
* Vienna RSS
* Other standard RSS/Atom clients
Paste the full tokenized URL exactly as copied from Paperzilla.
# Who should use Paperzilla?
Source: https://docs.paperzilla.ai/answers/who-should-use-paperzilla
Paperzilla is for researchers and technical teams who need continuous, high-signal paper monitoring.
Paperzilla is best for people who track research continuously, not occasionally.
Typical users include:
* Researchers
* Research engineers
* Bioinformatics and applied ML practitioners
* R\&D teams and technical founders
If you only need a one-off lookup, general search may be enough.
# Why should I rate papers in the feed?
Source: https://docs.paperzilla.ai/answers/why-rate-papers-in-feed
Feed feedback helps Paperzilla improve future recommendations for the same project.
Your ratings help Paperzilla understand what belongs in that specific project.
* **Useful** tells Paperzilla that the paper fits your project well.
* **Very useful** is the strongest positive signal. Use it for standout papers.
* **Not for me** tells Paperzilla that the paper should not shape future recommendations in the same way.
Over time, this helps Paperzilla prioritize stronger matches and reduce poor fits in future project feeds.
You do not need to rate every paper, but consistent ratings make the feed adapt faster.
# Why use both feed and email digests?
Source: https://docs.paperzilla.ai/answers/why-use-feed-and-email-both
Use feed for fast discovery and email digests for curated review cadence.
Feed and email solve different timing needs.
* Use [**feed**](/guides/feed-in-app) when you want immediate discovery and active scanning.
* Use [**email digests**](/guides/email-digests) when you want a controlled review window.
* Choose **Daily** if you want email close to when new papers are ready.
* Choose **Weekly** if you want one scheduled checkpoint with the best-scoring papers from the past week.
Many users use the feed continuously and use digest email as a lighter review layer on top.
# Introduction
Source: https://docs.paperzilla.ai/api-reference/introduction
Paperzilla integration surfaces: MCP, RSS/Atom feeds, and CLI access.
Paperzilla is primarily consumed through product surfaces:
* Web app project feed
* Email digests
* RSS/Atom feed URLs
* CLI (`pz`)
* MCP endpoint (`/api/mcp`)
This API reference section documents public integration surfaces for feeds and MCP.
## Start points
* [MCP endpoint](/api-reference/mcp)
* [RSS/Atom feed endpoint](/api-reference/rss-atom-feed)
* [RSS and Atom guide](/guides/feeds)
* [CLI guide](/guides/cli)
# MCP endpoint (developer appendix)
Source: https://docs.paperzilla.ai/api-reference/mcp
Technical MCP endpoint details for developers integrating Paperzilla clients with projects, full-feed search, paper detail, and markdown.
This page is a technical appendix for developers.
If you are a Paperzilla user setting up MCP, start with [Use Paperzilla with MCP](/guides/mcp).
Paperzilla exposes a Streamable HTTP MCP endpoint:
```text theme={null}
POST /api/mcp
```
Base URL example:
```text theme={null}
https://paperzilla.ai/api/mcp
```
If you want the short version of how discovery works, see [How do clients discover the Paperzilla MCP URL and tools?](/answers/how-do-clients-discover-paperzilla-mcp).
## Authentication
Send your MCP API key in either of these ways:
```http theme={null}
Authorization: Bearer pzmcp__
```
```text theme={null}
https://paperzilla.ai/api/mcp/?key=pzmcp__
```
Use the header form when your client supports custom headers. Use the query-string form when your client only accepts a URL, including Claude's custom connector flow.
For most users, create/revoke this key from **MCP API key** in the top-right of the [dashboard](https://paperzilla.ai/dashboard).
Get or rotate that key from app-authenticated endpoints:
* `GET /api/auth/mcp-key`
* `POST /api/auth/mcp-key/rotate`
* `DELETE /api/auth/mcp-key`
These key-management endpoints use your normal app JWT, not your MCP key.
## Key management endpoints (developer use)
```text theme={null}
GET /api/auth/mcp-key
POST /api/auth/mcp-key/rotate
DELETE /api/auth/mcp-key
```
## MCP methods currently used
Paperzilla supports standard MCP flows including:
* `initialize`
* `tools/list`
* `tools/call`
* `prompts/list`
* `prompts/get`
## Initialize example
The examples below use header auth.
```bash theme={null}
curl -s -X POST https://paperzilla.ai/api/mcp \
-H "Authorization: Bearer pzmcp_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"initialize",
"params":{
"protocolVersion":"2025-11-05",
"capabilities":{},
"clientInfo":{"name":"probe","version":"1.0"}
}
}'
```
## Tools
| Tool | Input |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `projects_list` | `{}` |
| `projects_get` | `{ "project_id": "uuid" }` |
| `feed_get` | `{ "project_id": "uuid", "must_read"?: boolean, "since"?: string, "limit"?: 1..100, "offset"?: 0.. }` |
| `feed_search` | `{ "project_id": "uuid", "q": "string (3..200 chars after trim)", "feedback_filter"?: "enum", "must_read"?: boolean, "limit"?: 1..100, "offset"?: 0.. }` |
| `feed_atom_url` | `{ "project_id": "uuid" }` |
| `paper_get` | `{ "paper_id": "uuid-or-short-id-or-feed-item-id" }` |
| `paper_markdown` | `{ "paper_id": "uuid-or-short-id-or-feed-item-id" }` |
Legacy dotted names such as `paper.get` remain accepted for direct `tools/call` compatibility, but Claude-compatible clients should use the underscore names above. The feed search alias is `feed.search`.
`paper_get` accepts the same identifier forms as the paper API:
* paper UUID
* paper `short_id`
* `project_paper` UUID
* `project_paper` `short_id`
`projects_*` and `feed_*` outputs follow the same shape as the corresponding API responses.
`feed_search` is the MCP path for full-feed text search. It searches title, author, abstract, and summary text across the entire project feed.
`feed_search.feedback_filter` accepts:
* `all`
* `unrated`
* `liked`
* `disliked`
* `starred`
* `not-relevant`
* `low-quality`
`feed_search` returns:
* `items`
* `limit`
* `offset`
* `has_more`
* `query`
Search semantics:
* query terms use prefix matching, so `Proxi` matches `Proximity`
* search is rank-first, not browse-order-first
* no exact `total` is returned in v1
`paper_get` returns the same paper detail fields as the authenticated paper API, including `markdown_ready`.
`paper_markdown` always returns a structured object:
* ready:
```json theme={null}
{
"status": "ready",
"paper_id": "uuid",
"markdown": "# Markdown...",
"mime_type": "text/markdown",
"markdown_ready": true
}
```
* queued:
```json theme={null}
{
"status": "queued",
"detail": "Markdown queued",
"code": "markdown_queued",
"job_id": "uuid",
"created": true
}
```
* unavailable:
```json theme={null}
{
"status": "unavailable",
"detail": "Markdown source unavailable",
"code": "markdown_source_unavailable"
}
```
## Tool call examples
List projects:
```bash theme={null}
curl -s -X POST https://paperzilla.ai/api/mcp \
-H "Authorization: Bearer pzmcp_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":2,
"method":"tools/call",
"params":{
"name":"projects_list",
"arguments":{}
}
}'
```
Search a full project feed:
```bash theme={null}
curl -s -X POST https://paperzilla.ai/api/mcp \
-H "Authorization: Bearer pzmcp_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":3,
"method":"tools/call",
"params":{
"name":"feed_search",
"arguments":{
"project_id":"20a9c4fd-779a-41c7-92e9-efabc5e9eea5",
"q":"latent retrieval",
"feedback_filter":"all",
"limit":20,
"offset":0
}
}
}'
```
## Prompt
Prompt name:
* `feed_title_filter`
Arguments:
* `project_id` (required)
* `title_keyword` (required)
* `must_read` (optional)
* `feedback_filter` (optional)
* `limit` (optional)
The prompt instructs the model to call `feed_search` and explain that the search is server-side across the full feed.
## Error semantics
* Invalid/missing key: HTTP `401`
* Disallowed `Origin`: HTTP `403`
* Invalid MCP method/JSON-RPC shape: protocol-level error
* Business/domain errors (ownership, missing project, missing paper, ambiguous short ID): tool result with `isError: true`
* `paper_markdown` queueing and source-unavailable cases are normal tool results, not tool errors
# RSS/Atom feed endpoint
Source: https://docs.paperzilla.ai/api-reference/rss-atom-feed
URL format and usage notes for Paperzilla project RSS/Atom feeds.
The project feed URL is generated per user and project.
## URL format
```text theme={null}
GET /api/feed/atom/{projectId}?token={feedToken}
```
Example:
```text theme={null}
https://paperzilla.ai/api/feed/atom/123e4567-e89b-12d3-a456-426614174000?token=pzft_xxx
```
## Parameters
* `projectId`: project UUID
* `token`: personal feed token tied to your account
## How to obtain a URL
Use one of these:
* Project page button: **Copy RSS/Atom URL**
* CLI: `pz feed --atom`
## Security notes
* Treat feed URLs as secrets.
* Anyone with the URL can read that feed.
* Do not publish personal tokenized URLs in public repos or docs.
# Account and sign-in
Source: https://docs.paperzilla.ai/guides/account-and-sign-in
Understand anonymous onboarding, magic links, and account access in Paperzilla.
Paperzilla supports both anonymous onboarding and email-based account access.
## Anonymous start
You can begin project setup in chat on [paperzilla.ai](https://paperzilla.ai) before creating a full account.
When you save delivery, Paperzilla asks for email and sends a magic link to complete access.
## Magic-link sign in
Paperzilla uses one-time email links/codes for authentication.
Typical flow:
1. Enter your email.
2. Open the email from Paperzilla.
3. Click link or enter code.
4. Continue where you left off.
## Existing account handoff
If you enter an email that already has a Paperzilla account during setup, Paperzilla sends a sign-in link and restores your setup after sign in.
## Access boundaries
* Project onboarding can start anonymously.
* Full project dashboard and management require account access.
* Private project links require owner access.
## Profile completion
If needed, Paperzilla asks for missing profile fields (for example first name) before continuing.
# Agent workflows
Source: https://docs.paperzilla.ai/guides/agent-workflows
Use Paperzilla as a data layer for agent and automation workflows through CLI, feeds, and MCP.
Paperzilla is designed for both human reading and programmatic use.
This guide focuses on Paperzilla as a **data layer for agents**.
## Available interfaces
Use these depending on your workflow:
* CLI (`pz`) for shell/script execution
* MCP (`/api/mcp`) for LLM tool-calling workflows
* RSS/Atom for polling in feed infrastructure
See [CLI guide](/guides/cli), [MCP integration](/guides/mcp), [Codex guide](/guides/codex), [Claude guide](/guides/claude), and [RSS/Atom guide](/guides/feeds).
## Recommended setup for agent workflows
1. Create and tune projects in the app.
2. Authenticate CLI with `pz login`.
3. Use `pz project list --json` to get the project ID you need from structured output.
4. Use `pz feed --json` for browse-style automation, or `pz feed search --project-id --query --json` for text search across the full feed.
5. Add filters (`--must-read`, `--since`, `--limit`, `--feedback-filter`) based on your workflow.
## OpenClaw skill
The Paperzilla CLI is published as an [OpenClaw skill on ClawHub](https://clawhub.ai/pors/paperzilla). Install it with `openclaw skills install paperzilla` to let OpenClaw use `pz` commands directly. If you already use the separate ClawHub CLI, `clawhub install paperzilla` also works. See [Use the Paperzilla CLI with OpenClaw](/guides/openclaw) for the full setup flow.
## Codex
Codex works with Paperzilla in two ways. Add Paperzilla MCP from Codex **Settings** > **Integrations & MCP** when you want native tool calling. Then confirm the server in `/mcp`. Use `pz` directly when Codex already works in a shell or repo. A useful Codex skill should cover setup verification, docs pointers, and the Paperzilla tool sequence, not just "prefer MCP" or "use the CLI." A plugin is only needed when you want an installable package. See [Use Paperzilla with Codex](/guides/codex).
## Data surfaces you can combine
* App feed for visual review
* CLI for structured automation
* RSS/Atom for polling in feed infrastructure
* Email digests for human review cadence
## MCP tool surface
Current tools:
* `projects_list`
* `projects_get`
* `feed_get`
* `feed_search`
* `feed_atom_url`
* `paper_get`
* `paper_markdown`
Optional prompt:
* `feed_title_filter`
Use `feed_search` when your workflow needs text search across an entire project feed. It is the MCP path for search by title, author, abstract, or summary terms.
Setup details: [MCP integration](/guides/mcp).
## Example workflows
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [Use Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs)
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
## Why this matters
If your workflow depends on "fresh papers + relevance filtering + automation," treat Paperzilla projects as the persistent source and let agents consume that data layer.
# Use Paperzilla MCP with Claude
Source: https://docs.paperzilla.ai/guides/claude
Add Paperzilla as a custom connector in Claude and use your projects, full-feed search, paper detail, and markdown in Claude.
Use this guide when you want Claude to read from your Paperzilla account through Paperzilla MCP.
This setup applies to Claude, Claude Desktop, and Cowork.
If you are setting up another MCP client, start with [Use Paperzilla with MCP](/guides/mcp). That page covers the generic endpoint and both supported auth patterns.
## Before you start
* A Paperzilla account with at least one project
* Your Paperzilla MCP API key from **MCP API key** in the top-right of the [dashboard](https://paperzilla.ai/dashboard)
* A Claude plan with access to custom connectors. Anthropic's current support page is [Building custom connectors via remote MCP servers](https://support.claude.com/en/articles/11503834-building-custom-connectors-via-remote-mcp-servers).
Your Claude connector URL contains your Paperzilla MCP key. Treat the full URL as a secret.
## Step 1: copy your Paperzilla MCP key
1. Open your [dashboard](https://paperzilla.ai/dashboard).
2. Click **MCP API key**.
3. Generate or copy your key.
4. Store it somewhere private while you set up Claude.
If you do not see that button yet, use the key-management details in the [MCP endpoint appendix](/api-reference/mcp).
## Step 2: build the Claude connector URL
Paperzilla accepts both `Authorization: Bearer ` and `?key=`.
In Claude's custom connector flow, use this URL form:
```text theme={null}
https://paperzilla.ai/api/mcp/?key=pzmcp_...
```
Replace `pzmcp_...` with your real key.
This URL form fits Claude's custom connector flow because you provide a URL directly in Claude.
## Step 3: add Paperzilla in Claude
1. Open Claude.
2. Go to **Settings** > **Connectors**.
3. Click **Add custom connector**.
4. Enter `Paperzilla` as the name.
5. Paste your connector URL.
6. Save the connector.
For Claude Desktop, add remote MCP servers through **Settings** > **Connectors**. Anthropic says Claude Desktop does not use remote servers that you place directly in `claude_desktop_config.json`.
After you save the connector, Claude should show the seven Paperzilla tools. Claude asks for approval by default. We recommend switching the connector to **Always allow**, as shown here, so Claude can use the Paperzilla tools without prompting on each call.
## Step 4: use Paperzilla in Claude
Enable the connector for the conversation or workflow where you want Claude to use your Paperzilla data. After that, Claude can call the Paperzilla tools directly.
You can ask things like:
* "What Paperzilla projects do I have?"
* "Show must-read papers from my `Autonomous Agents` project from this week."
* "Search my `Autonomous Agents` project for papers about proximity graphs."
* "Compare the two newest must-read papers in my evaluation project."
* "Pull markdown for the TRAJEVAL paper and explain the main contribution."
* "Draft a weekly summary of new must-read papers across all my projects."
## What Claude can access
| Tool | What it returns |
| ---------------- | --------------------------------------------------------------------------- |
| `projects_list` | Your projects |
| `projects_get` | One project |
| `feed_get` | Feed items with filters such as `must_read`, `since`, `limit`, and `offset` |
| `feed_search` | Full-feed search across title, author, abstract, and summary text |
| `feed_atom_url` | The Atom feed URL for one project |
| `paper_get` | Paper metadata and status |
| `paper_markdown` | Paper markdown, or a queued/unavailable status |
Claude-compatible MCP clients should use these underscore tool names. Paperzilla still accepts legacy dotted names like `paper.get` for direct `tools/call` compatibility.
Use `feed_search` when you want Claude to search the full feed, not just browse the feed page by page.
If you want the full protocol and input shapes, see [MCP endpoint (developer appendix)](/api-reference/mcp).
## Troubleshooting
### Claude cannot find the connector
Check that you added Paperzilla under **Settings** > **Connectors** in Claude, not in a local desktop config file.
### Claude reports an auth error or Paperzilla returns `401 Unauthorized`
The key in the connector URL is missing, invalid, revoked, or rotated. Generate a new key in the dashboard and update the connector URL in Claude.
### Claude returns no papers
Try a broader request first. For example, ask for papers from "this month" instead of "today". Also confirm that the project already has matching papers in Paperzilla.
### You want a non-Claude MCP client
Use [Use Paperzilla with MCP](/guides/mcp). Paperzilla supports both header auth and query-string auth, so use the one your client can send.
## Security
* Treat the full connector URL like a password.
* Rotate the MCP key immediately if the URL is exposed.
* Remove the connector in Claude if you no longer want Claude to access Paperzilla.
## Related
* [Use Claude in Slack for research briefs](/guides/claude-slack-briefs)
* [Use Paperzilla with MCP](/guides/mcp)
# Use Claude in Slack for research briefs
Source: https://docs.paperzilla.ai/guides/claude-slack-briefs
Run Paperzilla brief workflows through Claude in Slack and Cowork with Paperzilla MCP.
Use this guide when you want to discuss one Paperzilla project in Slack and send a weekday research brief to Slack from Cowork.
This walkthrough uses Claude in Slack for the live discussion, Paperzilla MCP for Paperzilla data access, and Cowork scheduled tasks for recurring delivery.
## Before you start
* Complete [Use Paperzilla MCP with Claude](/guides/claude).
* Make sure Claude is already available in Slack. See [Getting started with Claude in Slack](https://support.claude.com/en/articles/11506255-getting-started-with-claude-in-slack).
* Make sure Cowork is available in Claude Desktop. See [Get started with Cowork](https://support.claude.com/en/articles/13345190-get-started-with-cowork).
* Pick one Paperzilla project for this workflow.
* Prepare one short sentence for "our work" if Claude does not already know it. Example: `Our work is evaluation infrastructure for coding agents.`
Set up the Paperzilla MCP connection in Claude first. Anthropic says you cannot create or manage integrations from Slack itself.
## How this stack works
* You discuss papers with Claude in Slack.
* Claude reads your Paperzilla data through the Paperzilla MCP connection you already configured in Claude.
* For the weekday brief, Cowork runs a scheduled task and prepares a Slack-ready post.
* Start with a Slack draft. Move to direct send only after you trust the brief format.
## Use case 1: on-demand paper discussion
For the cleanest flow, use a Claude DM in Slack. If you want team visibility, mention `@Claude` in a channel or thread and review the private draft before posting it.
First ask for the latest papers from one project:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
Our work: we build evaluation infrastructure for coding agents.
Pull the latest papers from this project and show the top 5.
For each one, include the title, date, source, and whether it looks Must Read or Related.
```
Then ask for metadata for one paper:
```text theme={null}
Open the second paper and show the metadata only.
Include authors, publication date, source, URL, and the Paperzilla ID you used.
```
Then fetch markdown and connect it back to your team context:
```text theme={null}
Fetch the markdown for that paper.
Summarize the contribution, method, results, and limits.
Then explain why it matters for our work.
```
Then keep the discussion going:
```text theme={null}
Given our current work, should we read this now, keep it as Related, or ignore it this week?
Defend the recommendation.
```
Good replies for this flow should:
* keep the project name and "our work" context in view
* separate metadata from interpretation
* explain relevance in terms of your actual work, not generic importance
* make it easy to continue the discussion in the same Slack conversation
If you use `@Claude` in a shared thread, Claude in Slack shows the draft privately first and lets you decide whether to post it.
## Use case 2: weekday research brief in Slack
This pattern runs in Cowork on weekdays and prepares a brief for Slack.
Start a Cowork task, paste a prompt like this, then type `/schedule` and set the run to weekdays at your preferred time:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
Our work: we build evaluation infrastructure for coding agents.
Every weekday morning:
1. Pull the newest papers from this project.
2. Keep the brief concise.
3. For each selected paper, include the title, one short summary, and one sentence on why it is relevant to our work.
4. Include the project name and today's date at the top.
5. If there are no new papers, say that explicitly.
6. Draft a Slack post for #research-briefs and show it to me first.
```
Start with the draft pattern above. Once the output is stable, you can switch the last line to direct send:
```text theme={null}
Send the Slack message to #research-briefs instead of drafting it.
```
The expected brief format is:
* project name and date
* how many new papers were checked
* for each selected paper, one short summary and one sentence on why it is relevant to your work
* a clear "no new papers today" line when nothing new qualifies
Cowork scheduled tasks only run while your computer is awake and the Claude Desktop app is open.
See [Get started with Cowork](https://support.claude.com/en/articles/13345190-get-started-with-cowork) for scheduling entry points and [Use interactive connectors in Claude](https://support.claude.com/en/articles/13454812-use-interactive-connectors-in-claude) for Slack draft/send behavior.
## Limits and troubleshooting
* If Claude in Slack cannot access Paperzilla, reconnect or re-enable the Paperzilla connector in Claude settings first.
* If Claude in Slack cannot access Slack delivery actions, check your Slack connector and permissions in Claude.
* If the scheduled task does not run, confirm Claude Desktop is open and your computer is awake.
* If the agent returns no papers, confirm the project is active and already has feed items.
* If `paper_markdown` is queued or unavailable, retry later instead of changing the workflow.
## Optional shortcut
If you want this workflow packaged as a reusable skill, see the [`paperzilla-monitor` skill repo](https://github.com/paperzilla-ai/paperzilla-skills). Current install and distribution details live in that repo's README.
# CLI
Source: https://docs.paperzilla.ai/guides/cli
Use the Paperzilla CLI to read papers, search project feeds, inspect recommendations, and manage projects from your terminal
The Paperzilla CLI (`pz`) lets you read canonical papers by Paperzilla paper ID, browse or search your curated project feeds, inspect project-specific recommendations, and leave feedback from the terminal. It works for both humans and AI agents. Use `--json` when you want structured output. The main exceptions are `login` and `update`.
If you just installed `pz` and want the shortest path to a working setup, start with [CLI getting started](/guides/cli-getting-started).
## Install
```bash theme={null}
brew install paperzilla-ai/tap/pz
```
Via [Scoop](https://scoop.sh):
```bash theme={null}
scoop bucket add paperzilla-ai https://github.com/paperzilla-ai/scoop-bucket
scoop install pz
```
Download from [GitHub Releases](https://github.com/paperzilla-ai/pz/releases):
```bash theme={null}
curl -sL https://github.com/paperzilla-ai/pz/releases/latest/download/pz_linux_amd64.tar.gz | tar xz
sudo mv pz /usr/local/bin/
```
Requires Go 1.23+:
```bash theme={null}
git clone https://github.com/paperzilla-ai/pz.git
cd pz
go build -o pz .
mv pz /usr/local/bin/
```
## Update
Run:
```bash theme={null}
pz update
```
`pz update` checks whether your current CLI is on the latest release and then prints upgrade instructions for how you installed it.
* Homebrew installs show `brew update` and `brew upgrade pz`
* Scoop installs show `scoop update pz`
* GitHub release installs tell you which release artifact to download
* Source builds tell you to `git pull` and rebuild
`pz update` auto-detects common install methods from the current executable and build metadata.
If detection is ambiguous, override it explicitly:
```bash theme={null}
pz update --install-method homebrew
pz update --install-method scoop
pz update --install-method release
pz update --install-method source
```
Supported values are `auto`, `homebrew`, `scoop`, `release`, and `source`.
To check the currently installed version:
```bash theme={null}
pz --version
```
## Log in
Authenticate with your Paperzilla account. You receive a one-time code via email.
Don't have an account yet? Follow the [quickstart](/quickstart) to sign up first.
```bash theme={null}
pz login
```
```
Email: you@example.com
Sending magic link...
Check your email, enter the code: 123456
Logged in!
```
You need to sign in for project-oriented commands such as `project`, `feed`, `feed search`, `rec`, and `feedback`, and to request markdown generation for project recommendations.
If you only want to open a canonical paper by internal Paperzilla paper ID, `pz paper ` also works without logging in.
## Commands
### pz update
Check whether your CLI is current and print install-specific upgrade steps.
```bash theme={null}
pz update
```
If you use a source build or the install method was guessed incorrectly, override detection:
```bash theme={null}
pz update --install-method source
```
### pz project list
List all your projects.
```bash theme={null}
pz project list
```
```
ID NAME MODE VISIBILITY CREATED
a1b2c3d4-e5f6-7890-abcd-ef1234567890 Machine Learning Papers auto private 2025-06-15 10:30
b2c3d4e5-f6a7-8901-bcde-f12345678901 Genomics Research auto private 2025-07-20 14:15
```
Use the `ID` column for project-scoped commands such as `pz feed`, `pz feed search`, and `pz paper --project`.
Add `--json` when you want structured output for scripting or AI agents.
`pz project list --json` returns a compact summary array with the same project identity fields shown in the table: `id`, `name`, `mode`, and `visibility`.
### pz project \
Show details for a specific project.
```bash theme={null}
pz project a1b2c3d4-e5f6-7890-abcd-ef1234567890
```
```
Name: Machine Learning Papers
ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Mode: auto
Visibility: private
Matching State: active
Email Frequency: daily
Email Time: 09:00
Max Candidates: 100
Max Papers/Digest:20
Created: 2025-06-15 10:30
Activated: 2025-06-16 00:00
Last Digest: 2025-08-01 09:00
Interest:
Recent advances in transformer architectures and efficiency
```
Add `--json` to return the full project record:
```bash theme={null}
pz project a1b2c3d4-e5f6-7890-abcd-ef1234567890 --json
```
### pz paper \
Show details for a canonical Paperzilla paper.
`paper-ref` may be:
* a full paper UUID
* a paper `short_id`
This command works without logging in.
When you add `--project `, `pz paper` resolves that canonical paper inside one of your projects and shows recommendation context. That mode requires login.
```bash theme={null}
pz paper 33403e66-bfc3-43e7-a849-14b03341201e
```
```
Title: A Novel Approach to Transformer Efficiency
ID: 33403e66-bfc3-43e7-a849-14b03341201e
Short ID: abc12345
Slug: a-novel-approach
Source: arxiv
Published: 2025-07-20
Authors: Jane Smith, John Chen
URL: https://example.org/paper
PDF URL: https://example.org/paper.pdf
DOI: 10.1234/example
Source Paper ID: 2507.12345
```
#### Flags
| Flag | Short | Description |
| ------------ | ----- | ------------------------------------------------------------------------------ |
| `--json` | `-j` | Output the full paper as JSON |
| `--markdown` | | Print raw paper markdown to stdout when it is already available |
| `--project` | | Resolve this paper inside one of your projects and show recommendation context |
#### Examples
```bash theme={null}
# Inspect a canonical paper by UUID or short ID
pz paper
# Show the same paper as it appears in one of your projects
pz paper --project
# Print raw markdown when it is already prepared
pz paper --markdown
```
If markdown is not ready yet, the CLI prints a friendly message. Anonymous `pz paper --markdown` does not queue markdown generation.
For project-scoped agent workflows, `pz rec --markdown` is often a better follow-up after `pz feed` or `pz feed search`, because the recommendation context can queue markdown generation.
If you are new to the model, see [What is the difference between a canonical paper and a recommendation?](/answers/what-is-the-difference-between-a-canonical-paper-and-a-recommendation).
### pz rec \
Show details for one recommendation from one of your projects.
`project-paper-ref` may be:
* a full `project_paper` UUID returned by `pz feed --json`
* a `project_paper` `short_id` returned by `pz feed --json`
This command requires login.
```bash theme={null}
pz rec bb31f558
```
```
Title: A Novel Approach to Transformer Efficiency
Recommendation ID: bb31f558-9613-4552-990a-30fb3ac48602
Short ID: bb31f558
Relevance: Must Read (92%)
Feedback: star
Ready At: 2025-08-01 09:00
Summary:
This paper is highly relevant because it introduces...
Paper:
ID: 33403e66-bfc3-43e7-a849-14b03341201e
Short ID: abc12345
Source: arxiv
Published: 2025-07-20
```
#### Flags
| Flag | Short | Description |
| ------------ | ----- | ----------------------------------------------------------------- |
| `--json` | `-j` | Output the recommendation as JSON |
| `--markdown` | | Print raw paper markdown to stdout, queueing generation if needed |
#### Examples
```bash theme={null}
# Open a recommendation using the ID returned by the feed
pz rec
# Fetch the first recommendation from a project feed
pz feed --json | jq -r '.items[0].id' | xargs pz rec
# Print markdown for the recommended paper
pz rec --markdown
```
If markdown is still being prepared, the CLI prints a one-line message and asks you to try again in a minute or so.
### pz feedback \ \
Leave a recommendation signal for one paper in one project.
Supported feedback values:
* `upvote`
* `downvote`
* `star`
#### Flags
| Flag | Short | Description |
| ---------- | ----- | --------------------------------------------------------- |
| `--json` | `-j` | Output the feedback object as JSON |
| `--reason` | | Optional downvote reason: `not_relevant` or `low_quality` |
#### Examples
```bash theme={null}
# Positive signal
pz feedback upvote
# Positive signal as JSON
pz feedback upvote --json
# Strong positive signal
pz feedback star
# Negative signal with an explicit reason
pz feedback downvote --reason not_relevant
# Clear any existing feedback
pz feedback clear
# Clear feedback and get a confirmation envelope
pz feedback clear --json
```
Feedback is project-specific. The same canonical paper can have different feedback in different projects.
To remove feedback entirely, use `pz feedback clear `.
`clear` is a subcommand. Use `pz feedback clear `, not `pz feedback clear`.
For a shorter explanation, see [How do feedback signals work in the CLI?](/answers/how-do-feedback-signals-work-in-the-cli).
### pz feed \
Browse the curated paper feed for a project.
```bash theme={null}
pz feed a1b2c3d4-e5f6-7890-abcd-ef1234567890
```
```
Machine Learning Papers — 12 papers (total: 142)
★ Must Read A Novel Approach to Transformer Efficiency
Smith et al. · arxiv · 2025-08-01 · relevance: 92%
○ Related On the Convergence Properties of Diffusion Models
Chen et al. · arxiv · 2025-07-30 · relevance: 74%
```
Each paper shows a relevance class (`★ Must Read` or `○ Related`), title, first author, source, date, and relevance score.
Use recommendation IDs from the feed with `pz rec`, and canonical paper IDs with `pz paper`.
#### Flags
| Flag | Short | Description |
| ------------- | ----- | ------------------------------------------------------ |
| `--json` | `-j` | Output as JSON |
| `--must-read` | `-m` | Only show must-read papers |
| `--since` | `-s` | Only papers after this date (ISO 8601 or `YYYY-MM-DD`) |
| `--limit` | `-n` | Limit number of results |
| `--atom` | | Print Atom feed URL for feed readers |
#### Examples
```bash theme={null}
# Only must-read papers from the last week
pz feed --must-read --since 2025-07-25 --limit 5
# Export as JSON for scripting
pz feed --json
# Pipe to jq
pz feed --json | jq '.items[].paper.title'
# Get Atom feed URL for your feed reader
pz feed --atom
```
### pz feed search
Search across the full feed for one project.
Use `pz project list` first if you need to look up the project ID.
```bash theme={null}
pz project list
```
```bash theme={null}
pz feed search --project-id a1b2c3d4-e5f6-7890-abcd-ef1234567890 --query "latent retrieval"
```
```
Machine Learning Papers — 2 papers
Query: latent retrieval
Has more: true
★ Must Read [★] Latent Retrieval for Papers
Smith et al. · arXiv · 2026-04-01 · relevance: 95%
○ Related Prefix Matching in Search
Chen · ICLR · 2026-03-30 · relevance: 76%
```
This command searches the whole project feed, not just already loaded browse pages.
Search is rank-first. It does not return an exact total count in v1.
Query terms use prefix matching, so `Proxi` matches `Proximity`.
#### Flags
| Flag | Short | Description |
| ------------------- | ----- | -------------------------------------------------------------------------------------------- |
| `--project-id` | | Project ID to search |
| `--query` | `-q` | Search query, 3 to 200 characters after trim |
| `--feedback-filter` | | Filter by `all`, `unrated`, `liked`, `disliked`, `starred`, `not-relevant`, or `low-quality` |
| `--must-read` | `-m` | Only return Must Read papers |
| `--limit` | `-n` | Limit results per page, up to 100 |
| `--offset` | | Skip results for pagination |
| `--json` | `-j` | Output the search envelope as JSON |
#### Examples
```bash theme={null}
# Find your project ID first
pz project list
# Search one project feed
pz feed search --project-id --query "latent retrieval"
# Use prefix search
pz feed search --project-id --query "Proxi"
# Search only starred papers
pz feed search --project-id --query "retrieval" --feedback-filter starred
# Search only Must Read papers
pz feed search --project-id --query "retrieval" --must-read
# Get JSON for scripting
pz feed search --project-id --query "latent retrieval" --json
# Fetch the next page only if the previous response had has_more = true
pz feed search --project-id --query "latent retrieval" --limit 20 --offset 20
```
The JSON response includes:
* `items`
* `limit`
* `offset`
* `has_more`
* `query`
If you want a shorter answer, see [How do I search a project feed from the CLI?](/answers/how-do-i-search-a-project-feed-from-the-cli) and [How do I find my project ID for CLI commands?](/answers/how-do-i-find-my-project-id-for-cli-commands).
### Atom feeds
The `--atom` flag prints a URL you can paste into any feed reader (Vienna RSS, NetNewsWire, Feedly, etc.):
```bash theme={null}
pz feed --atom
```
```
https://paperzilla.ai/api/feed/atom/a1b2c3d4-...?token=pzft_...
```
The URL contains a personal feed token so the reader can poll without logging in. The token is per-user, and the same URL is returned on repeated calls. See the [feeds guide](/guides/feeds) for more on RSS/Atom.
## JSON output
With `--json`, `pz feed` returns structured data suitable for scripting and AI agents:
```json theme={null}
{
"items": [
{
"id": "bb31f558-9613-4552-990a-30fb3ac48602",
"short_id": "bb31f558",
"paper_title": "A Novel Approach to...",
"relevance_score": 0.92,
"relevance_class": 2,
"personalized_note": "Relevant because...",
"ready_at": "2025-08-01T09:00:00Z",
"feedback": {
"vote": "star",
"downvote_reason": null,
"updated_at": "2025-08-01T09:10:00Z"
},
"paper": {
"id": "33403e66-bfc3-43e7-a849-14b03341201e",
"short_id": "abc12345",
"title": "A Novel Approach to...",
"authors": [{"name": "Jane Smith"}],
"published_date": "2025-07-20",
"pdf_url": "https://arxiv.org/pdf/2507.12345",
"url": "https://arxiv.org/abs/2507.12345",
"source_id": 1,
"source": {
"name": "arxiv"
}
}
}
],
"total": 142,
"limit": 20,
"offset": 0
}
```
**Relevance classes:** `2` = Must Read, `1` = Related
**Recommendation IDs:** use `items[].id` or `items[].short_id` with `pz rec` and `pz feedback`
**Paper IDs:** use `items[].paper.id` or `items[].paper.short_id` with `pz paper`
**Source IDs:** `1` = arXiv, `2` = medRxiv, `3` = bioRxiv, `4` = ChinaXiv, `6` = ChemRxiv
`pz project list --json` returns project summary objects with `id`, `name`, `mode`, and `visibility`.
`pz project --json` returns the full project record.
`pz feedback ... --json` returns the feedback object.
`pz feedback clear --json` returns a small confirmation envelope because the backend clear endpoint returns `204 No Content`.
`pz feed search --json` returns a search envelope with `items`, `limit`, `offset`, `has_more`, and `query`.
## OpenClaw skill
The Paperzilla CLI is also available as an [OpenClaw skill on ClawHub](https://clawhub.ai/pors/paperzilla). This lets AI agents like OpenClaw, Claude Code, Cursor, and Windsurf use `pz` commands directly.
For the full setup flow, see [Use the Paperzilla CLI with OpenClaw](/guides/openclaw).
If you already use OpenClaw, install the skill with:
```bash theme={null}
openclaw skills install paperzilla
```
If you already use the separate ClawHub CLI, this also works:
```bash theme={null}
clawhub install paperzilla
```
Once installed, your agent can list projects, inspect papers, browse or search feeds, and filter papers without manual CLI invocation. The skill wraps the same `pz` commands documented above.
You still need the `pz` binary installed and authenticated. The skill teaches the agent how to use it — it does not replace the CLI itself.
## Configuration
| Variable | Description | Default |
| ------------ | ------------ | ----------------------- |
| `PZ_API_URL` | API base URL | `https://paperzilla.ai` |
# CLI getting started
Source: https://docs.paperzilla.ai/guides/cli-getting-started
Install pz, sign in, create your first project, and learn the first commands to run.
This is the fastest path from installing `pz` to getting useful output.
## What the CLI expects
The Paperzilla CLI supports two modes:
* canonical paper mode
* project mode
Canonical paper mode works with a Paperzilla paper ID and does not require login.
Project mode works against your existing Paperzilla account and projects. That means:
* you need a Paperzilla account
* you need at least one project
* then `pz` can list projects, browse or search feeds, open recommendations, leave feedback, print markdown, and generate Atom feed URLs
If you installed `pz` first and have not set up Paperzilla yet, that is fine. Start with the web app once, then come back to the CLI.
## Step 1: install pz
Follow the install instructions in the [CLI guide](/guides/cli).
## Step 2: if you already have a Paperzilla paper ID, open it immediately
```bash theme={null}
pz paper
```
That works without logging in.
To keep the CLI up to date:
```bash theme={null}
pz update
```
That command checks whether you are on the latest release and prints the right upgrade steps for Homebrew, Scoop, GitHub release installs, or source builds.
## Step 3: sign in for project commands
```bash theme={null}
pz login
```
Paperzilla sends a one-time email code and stores your session locally for reuse.
## Step 4: if you do not have an account yet
Go to [paperzilla.ai](https://paperzilla.ai) and follow the [quickstart](/quickstart).
The short version:
1. Describe what research you want to track.
2. Review the proposed project setup.
3. Save delivery.
4. Confirm your email if prompted.
That creates both your account access and your first project.
## Step 5: if you signed in but have no projects
Run:
```bash theme={null}
pz project list
```
If you see no projects, create your first one in the web app:
* [How do I create my first project?](/answers/create-first-project)
* [What is a project in Paperzilla?](/answers/what-is-a-project)
## Step 6: run your first useful commands
List projects:
```bash theme={null}
pz project list
```
For scripts and agents, use `pz project list --json` to get the same project identity fields as structured output: `id`, `name`, `mode`, and `visibility`.
Browse a project feed:
```bash theme={null}
pz feed
```
Find a project ID, then search across the full feed:
```bash theme={null}
pz project list
pz feed search --project-id --query "latent retrieval"
```
Inspect a canonical paper by Paperzilla paper ID:
```bash theme={null}
pz paper
```
Inspect one recommendation from the feed:
```bash theme={null}
pz rec
```
Open a canonical paper with project context:
```bash theme={null}
pz paper --project
```
Leave recommendation feedback:
```bash theme={null}
pz feedback upvote
```
Use `pz feedback upvote --json` when you want the feedback object as structured output.
Print raw paper markdown:
```bash theme={null}
pz rec --markdown
```
Get an Atom feed URL:
```bash theme={null}
pz feed --atom
```
Update the CLI:
```bash theme={null}
pz update
```
If needed, override install-method detection:
```bash theme={null}
pz update --install-method source
```
## If your project exists but has no papers yet
That usually means the project is still processing, paused, too narrow, or too strict.
See:
* [Why does my project have no papers yet?](/answers/project-no-papers)
## Next docs
* [CLI guide](/guides/cli)
* [RSS and Atom feeds](/guides/feeds)
* [In-app feed](/guides/feed-in-app)
* [MCP guide](/guides/mcp)
# Use Paperzilla with Codex
Source: https://docs.paperzilla.ai/guides/codex
Connect Paperzilla MCP to Codex, or let Codex use the pz CLI with an optional skill.
Use this guide when you want Codex to work with your Paperzilla data.
Codex supports two Paperzilla paths:
* Paperzilla MCP for native tool calling over the MCP endpoint
* Paperzilla CLI (`pz`) for local terminal workflows
You do not need a plugin for the basic MCP setup.
For most users, the easiest MCP setup is the Codex app's **Integrations & MCP** settings. Use a plugin only when you want an installable Codex package that bundles Paperzilla workflow instructions, a Paperzilla MCP endpoint declaration, a Paperzilla CLI skill, or a combination of those pieces.
## Choose the right path
Use Paperzilla MCP when:
* you want Codex to reason over Paperzilla tools directly
* you do not want a local `pz` dependency
* you want the same remote Paperzilla surface you use with other MCP clients
* you prefer a GUI setup in the Codex app
Use `pz` when:
* Codex already works in the terminal or repository where `pz` is installed
* you want deterministic CLI output
* you want to reuse your existing `pz login` session
Use a Codex plugin when:
* you want to distribute a reusable Codex setup to a team
* you want one installable package instead of manual skill and MCP setup
Do not use a Codex plugin just to connect Paperzilla MCP. Current Codex plugin installs do not collect Paperzilla MCP API keys for non-OAuth MCP servers. If you install a Paperzilla Codex plugin, still connect Paperzilla in **Integrations & MCP** or configure the MCP key in Codex MCP config.
## Before you start
* A Paperzilla account with at least one project
* Codex access in the client you use
* Your Paperzilla MCP API key from **MCP API key** in the [dashboard](https://paperzilla.ai/dashboard) if you want the MCP path
* `pz` installed and authenticated with `pz login` if you want the CLI path
## Option 1: add Paperzilla MCP in Codex settings
Codex supports streamable HTTP MCP servers. In the Codex app, add Paperzilla from **Settings** > **Integrations & MCP**.
### Step 1: copy your Paperzilla MCP key
1. Open your [dashboard](https://paperzilla.ai/dashboard).
2. Click **MCP API key**.
3. Generate or copy your key.
4. Keep it private.
### Step 2: add Paperzilla in Integrations & MCP
1. Open Codex settings. On macOS, press `Cmd` + `,`.
2. Open **Integrations & MCP**.
3. Click **Add your own** or the equivalent custom MCP server action.
4. In **Connect to a custom MCP**, fill the settings like this:
| Setting | Value |
| --------------- | ---------------------------------------------- |
| **Name** | `paperzilla` |
| Connection type | **Streamable HTTP** |
| URL | `https://paperzilla.ai/api/mcp/?key=pzmcp_...` |
Replace `pzmcp_...` with your real key.
Make sure **Streamable HTTP** is selected. Do not use **STDIO** for Paperzilla. If you still see fields such as **Command to launch**, **Arguments**, **Environment variables**, or **Working directory**, you are still on the STDIO setup screen.
5. Click **Save**.
The full MCP URL should look like this:
```txt theme={null}
https://paperzilla.ai/api/mcp/?key=pzmcp_...
```
This is the simplest Codex app setup because it fits clients that only ask for an MCP server URL.
If you prefer header auth, or if the Codex app opens the config file for advanced setup, use this `~/.codex/config.toml` block instead:
```toml theme={null}
[mcp_servers.paperzilla]
url = "https://paperzilla.ai/api/mcp"
http_headers = { Authorization = "Bearer pzmcp_..." }
```
Replace `pzmcp_...` with your real Paperzilla MCP key.
You do not need a separate environment variable.
The `?key=` URL is easier for GUI setup. The `http_headers` block is cleaner for users who are already comfortable editing Codex config.
### Step 3: confirm the server is active
In Codex, run `/mcp` or `/mcp paperzilla` to confirm that `paperzilla` is available and enabled.
In the Codex app, the Paperzilla entry should show `Enabled`.
The Auth column may show `Unsupported`. For this setup, that means Codex does not offer an interactive OAuth login for Paperzilla. It does not prove that the static `http_headers` API key is missing.
If you do not see the updated config right away, reopen Codex and check again.
After that, ask Codex things like:
* "List my Paperzilla projects."
* "Show Must Read papers from my agents project from this week."
* "Search my evaluation project for papers about proximity graphs."
* "Get markdown for the newest Must Read paper in my retrieval project."
For the generic MCP contract and full tool list, see [Use Paperzilla with MCP](/guides/mcp).
### How Codex uses Paperzilla MCP
In practice, Codex will often follow a flow like this:
* `projects_list` to find the project you mean
* `projects_get` when it needs project settings or project detail
* `feed_get` for browse-style feed retrieval
* `feed_search` for title, author, abstract, or summary search across the full project feed
* `paper_get` when it needs standalone paper metadata
* `paper_markdown` once it has the canonical paper ID
Feed results include both the project-scoped recommendation ID and nested canonical paper metadata.
Because `feed_get` and `feed_search` already include nested paper metadata, Codex will often skip `paper_get` unless it needs a standalone paper lookup.
That means a common Codex MCP pattern is:
1. Search a project feed with `feed_search`.
2. Take the `paper.id` from the matching result.
3. Call `paper_markdown` with that paper ID.
`paper_markdown` returns a structured status:
* `ready` when the markdown content is returned immediately
* `queued` when Paperzilla accepted the request but the markdown is not ready yet
* `unavailable` when that paper does not currently have a usable markdown source
If you want to force the MCP path when both MCP and CLI are available, say so explicitly. For example:
* "Use the `paperzilla` MCP server. Do not use `pz`."
### Optional: add a Codex skill for repeatable MCP behavior
Yes. For the MCP path, the skill should do more than say "prefer Paperzilla."
A good Codex skill explains what Codex needs to know to make the Paperzilla MCP path work reliably:
* when the skill should trigger
* how to verify that the `paperzilla` MCP server is installed and enabled
* where the Paperzilla setup docs live
* which Paperzilla MCP tool sequence to follow
* when not to fall back to `pz`
* that MCP auth belongs in Codex **Integrations & MCP** or Codex config, not in the skill itself
This matches how Codex skills are meant to work: a skill can package instructions, references, and optional scripts for a reusable workflow.
Store a repo skill under `.agents/skills/paperzilla-mcp/` or a user skill under `$HOME/.agents/skills/paperzilla-mcp/`.
A practical layout looks like this:
```text theme={null}
.agents/skills/paperzilla-mcp/
SKILL.md
references/
setup.md
```
`SKILL.md` holds the workflow instructions. `references/setup.md` is where you put the install and troubleshooting context that Codex can consult when needed.
Recommended example:
```md theme={null}
---
name: paperzilla-mcp
description: Use when the task needs Paperzilla projects, feed items, paper metadata, or markdown through the configured `paperzilla` MCP server. Do not use for `pz` CLI tasks unless the user explicitly asks for the CLI path.
---
Use the `paperzilla` MCP server for Paperzilla tasks unless the user explicitly asks for `pz`.
Before using Paperzilla, verify that the MCP server is available if there is any setup ambiguity.
Check `/mcp paperzilla` or `/mcp`.
If the MCP server is missing, disabled, or failing auth:
- do not invent Paperzilla results
- explain that the Paperzilla MCP setup needs attention
- point the user to `references/setup.md`
Do not store API keys or secrets in this skill.
Paperzilla MCP auth belongs in Codex **Integrations & MCP**, `~/.codex/config.toml`, or project `.codex/config.toml`.
Workflow:
- start with `projects_list` when you need to identify a project
- use `projects_get` when the user asks for project settings or project details
- use `feed_get` for browse-style feed retrieval
- use `feed_search` for title, author, abstract, or summary search across a full project feed
- use `paper_get` only when you need standalone canonical paper metadata
- use `paper_markdown` with the canonical `paper.id` from feed results
- treat `paper_markdown` statuses `ready`, `queued`, and `unavailable` as normal outcomes
If both MCP and `pz` are available and the user did not specify, prefer MCP for Paperzilla tasks.
Only fall back to `pz` if the user explicitly asks for the CLI path or the MCP setup is unavailable.
If the user asks how to set up or debug Paperzilla MCP, consult `references/setup.md`.
```
Example `references/setup.md`:
```md theme={null}
# Paperzilla MCP setup for Codex
Paperzilla docs:
- https://paperzilla.ai/guides/codex
- https://paperzilla.ai/guides/mcp
Expected Codex config:
[mcp_servers.paperzilla]
url = "https://paperzilla.ai/api/mcp/?key=pzmcp_..."
Advanced header-auth config:
[mcp_servers.paperzilla]
url = "https://paperzilla.ai/api/mcp"
http_headers = { Authorization = "Bearer pzmcp_..." }
Verify setup in Codex with:
- `/mcp`
- `/mcp paperzilla`
If Paperzilla is available, prefer MCP tools in this order:
- `projects_list`
- `projects_get`
- `feed_get` or `feed_search`
- `paper_get` when needed
- `paper_markdown`
```
That structure gives Codex both the workflow and the supporting setup notes. The skill stays focused, and the longer install/debug context lives in `references/`.
You can invoke the skill explicitly with `/skills` or by mentioning `$paperzilla-mcp`. Codex can also pick it implicitly from the `description` when the task matches.
## Option 2: let Codex use the Paperzilla CLI
Codex can already run shell commands in your workspace. That means the CLI path works even without a custom Codex skill.
### Step 1: confirm the CLI works where Codex runs
```bash theme={null}
pz login
pz project list
```
If `pz project list` does not work in the same environment where Codex runs, fix that first.
### Step 2: ask Codex to use `pz`
You can ask for things like:
* "Use `pz` to list my Paperzilla projects."
* "Use `pz` to show the newest Must Read papers from my agents project."
* "Use `pz feed search` to search my evaluation project for proximity graphs."
* "Use `pz` to get markdown for that paper."
In practice, Codex will often follow this CLI flow:
```bash theme={null}
pz project list --json
pz project --json
pz feed search --project-id --query "retrieval evaluation" --json
pz paper --json
pz rec --markdown
```
That flow matches the way Paperzilla separates project recommendations from canonical papers.
`pz project list --json` returns a compact project summary array, which is usually enough for Codex to pick the right `project-id`.
### How Codex uses Paperzilla objects
* `pz project list` gives Codex the project ID it needs for project-scoped work
* `pz feed` and `pz feed search` return recommendation entries from one project feed
* each recommendation includes both a recommendation ID and a canonical paper ID
* `pz paper` is the right path for canonical paper metadata
* `pz rec` is the right path for project-scoped context such as Must Read vs Related, recommendation feedback, and markdown queueing
If you are new to this model, see [What is the difference between a canonical paper and a recommendation?](/answers/what-is-the-difference-between-a-canonical-paper-and-a-recommendation).
### JSON output and markdown behavior
Use `--json` when Codex should read structured output instead of terminal tables.
Across the CLI, `--json` is available on commands such as `project list`, `project`, `feed`, `feed search`, `paper`, `rec`, and `feedback`. The main exceptions are `login` and `update`.
Markdown behavior also depends on which object you open:
* `pz paper --markdown` prints markdown only when it is already ready
* `pz rec --markdown` can queue markdown generation because it has project context
For Codex and other agents, `pz rec --markdown` is often the better path after a project feed search.
### Optional: add a Codex skill for repeatable CLI behavior
A Codex skill is useful when you want Codex to know when to reach for `pz` without re-explaining the workflow each time.
Store a repo skill under `.agents/skills/paperzilla-cli/SKILL.md` or a user skill under `$HOME/.agents/skills/...`.
Minimal example:
```md theme={null}
---
name: paperzilla-cli
description: Use when the task needs Paperzilla data through the local pz CLI in this environment.
---
Use `pz` for Paperzilla tasks in this environment.
Start by confirming `pz project list` works.
Prefer `--json` when structured output helps.
Use `pz feed search --project-id --query ` for full-feed search.
Use `pz paper ` for canonical metadata.
Use `pz rec --markdown` when markdown may need to be queued.
```
The skill teaches Codex how to use `pz`. It does not replace the `pz` binary or your Paperzilla login.
## When a plugin is worth it
You do not need a plugin just to connect Codex to Paperzilla MCP.
Build a Codex plugin only when you want a reusable, installable package for other Codex users.
That plugin can bundle:
* the Paperzilla MCP endpoint declaration
* a skill for Paperzilla MCP workflows
* a `skills/` directory for Paperzilla CLI workflows
* both, if you want MCP and CLI paths in one package
For Paperzilla MCP, the plugin does not remove the need for the Codex MCP auth block:
```toml theme={null}
[mcp_servers.paperzilla]
url = "https://paperzilla.ai/api/mcp"
http_headers = { Authorization = "Bearer pzmcp_..." }
```
For normal users, prefer **Settings** > **Integrations & MCP** instead of a plugin installer. If you install only from the Codex **Plugins** UI, verify `/mcp paperzilla` before expecting live Paperzilla tools.
In other words:
* MCP server: the Paperzilla integration surface
* skill: instructions for how Codex should use Paperzilla through MCP, CLI, or both
* plugin: the distribution wrapper around one or both
If you later want a published Codex setup, packaging the Paperzilla MCP config and one or more Paperzilla skills into one plugin is the right next step.
## Troubleshoot plugin MCP access
If Codex says the Paperzilla MCP tools are not exposed, the plugin skill may be installed without an authenticated `paperzilla` MCP server.
Check `/mcp paperzilla` first. If Paperzilla is missing, add Paperzilla from **Settings** > **Integrations & MCP** or add the `mcp_servers.paperzilla` config block above.
If Paperzilla appears with `Auth unsupported` and `Enabled`, that can be normal for static API-key auth. Try a live Paperzilla request. If that fails, check that the custom MCP URL includes `?key=...` or that `~/.codex/config.toml` contains the `http_headers` block.
If Paperzilla appears but a live request fails auth, regenerate your **MCP API key** in the Paperzilla dashboard and update the same config block.
Do not solve this by installing the skill again. The skill tells Codex how to use Paperzilla after the MCP server is available. It does not authenticate the MCP server by itself.
## Related
* [Use Paperzilla with MCP](/guides/mcp)
* [Use Codex and Microsoft Teams for research briefs](/guides/codex-teams-briefs)
* [CLI guide](/guides/cli)
* [Agent workflows](/guides/agent-workflows)
# Use Codex and Microsoft Teams for research briefs
Source: https://docs.paperzilla.ai/guides/codex-teams-briefs
Run Paperzilla brief workflows in Codex and turn them into Microsoft Teams-ready updates.
Use this guide when you want Codex to read one Paperzilla project and prepare research briefs for Microsoft Teams.
This walkthrough uses Paperzilla MCP for Paperzilla data access, Codex for analysis and scheduling, and the Microsoft Teams app or plugin for optional team context. The default output is a Teams-ready draft.
OpenAI's current help docs call this an app. Codex may surface the same integration as a plugin.
Paperzilla documents the Paperzilla side of this workflow. Teams search and write behavior is controlled by OpenAI, Microsoft, and your workspace settings.
## Before you start
* Complete [Use Paperzilla with Codex](/guides/codex).
* Confirm `/mcp paperzilla` shows Paperzilla as enabled in Codex.
* Connect the Microsoft Teams app or plugin in ChatGPT or Codex. See [Microsoft Teams app for ChatGPT](https://help.openai.com/en/articles/12552368-microsoft-teams-connector-for-chatgpt).
* If you use a Business or Enterprise/Edu workspace, confirm your admin has enabled the Teams app and the Teams actions you need. See [Apps in ChatGPT](https://help.openai.com/en/articles/11487775-connectors-in-chatgpt).
* Pick one Paperzilla project for this workflow.
* Prepare one short sentence for "our work" if Codex should not infer it from Teams. Example: `Our work is evaluation infrastructure for coding agents.`
Start with a Teams-ready draft. Only move to direct posting after you confirm that the Teams app exposes the right write actions and Codex asks for confirmation before posting.
## How this stack works
* Codex reads your Paperzilla project through Paperzilla MCP.
* Codex can use recent Microsoft Teams context when the Teams app is connected and allowed.
* Codex can prepare a Teams-ready research brief from the newest papers in one project.
* Codex automations can run the brief on a schedule and put the result in Triage.
* If Teams write actions are available in your workspace, Codex may be able to ask for confirmation before posting to Teams.
Use Teams context when the brief should reflect what your team is actively discussing. Use only Paperzilla context when you want the brief to stay independent from chat history.
## Use case 1: on-demand paper discussion
Start in Codex and mention both the Paperzilla project and the Teams context you want Codex to use.
First ask for recent team context and the latest papers:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
Use recent Microsoft Teams context from the research discussion if available.
Our work: we build evaluation infrastructure for coding agents.
Pull the latest papers from this project and show the top 5.
For each one, include the title, date, source, and whether it looks Must Read or Related.
Then add one sentence explaining how it connects to recent team priorities.
```
Then ask for metadata for one paper:
```text theme={null}
Open the second paper and show the metadata only.
Include authors, publication date, source, URL, and the Paperzilla ID you used.
```
Then fetch markdown and connect it back to the Teams context:
```text theme={null}
Fetch the markdown for that paper.
Summarize the contribution, method, results, and limits.
Then explain why it matters for our work and for the recent Teams discussion.
```
Then ask Codex to draft a Teams-ready post:
```text theme={null}
Draft a Microsoft Teams update for the research channel.
Include:
- project name
- paper title
- one short summary
- why the team should read it
- one suggested next step
Do not post it yet. Show me the draft first.
```
If Codex confirms that a Teams write action is available in your workspace, you can ask it to post after review:
```text theme={null}
Post that draft to Microsoft Teams.
Ask for confirmation before sending.
```
Good replies for this flow should:
* keep the project name and "our work" context in view
* separate Paperzilla metadata from Codex interpretation
* cite or name the Teams context only when Codex actually used it
* produce a brief that is useful as a Teams message, not a long paper review
## Use case 2: weekday research brief for Teams
This pattern uses a Codex automation to prepare a brief on weekdays.
Codex automations report findings in Triage. Treat that as the default review point. After you review the output, ask Codex to post the approved draft to Teams only if the Teams app supports posting in your workspace.
Create a Codex automation with a prompt like this:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
Use recent Microsoft Teams context from the research discussion if available.
Our work: we build evaluation infrastructure for coding agents.
Every weekday morning:
1. Pull the newest papers from this project.
2. Prefer Must Read papers, then strong Related papers.
3. Keep the brief concise.
4. For each selected paper, include the title, one short summary, and one sentence on why it is relevant to our work.
5. Include the project name and today's date at the top.
6. If there are no new papers, say that explicitly.
7. Prepare a Microsoft Teams-ready draft and put it in Triage.
8. Do not post to Teams automatically unless I explicitly approve the send action.
```
The expected brief format is:
* project name and date
* how many new papers were checked
* for each selected paper, one short summary and one sentence on why it is relevant to your work
* a short "why this matters now" line when Teams context was used
* a clear "no new papers today" line when nothing new qualifies
If the first few briefs are useful, keep the automation. If they are too noisy, narrow the project, add a topic filter, or ask Codex to use only Must Read papers.
## Limits and troubleshooting
* If Codex cannot access Paperzilla, fix the Paperzilla MCP setup first in [Use Paperzilla with Codex](/guides/codex).
* If Codex cannot access Teams, reconnect the Microsoft Teams app and check workspace app controls.
* If Teams posting fails, keep using Teams-ready drafts. Your workspace may allow search but not write actions.
* If an automation produces no Triage item, confirm the Codex app is running and the automation is enabled.
* If the agent returns no papers, confirm the project is active and already has feed items.
* If `paper_markdown` is queued or unavailable, retry later instead of changing the workflow.
## Related
* [Use Paperzilla with Codex](/guides/codex)
* [Use Paperzilla with MCP](/guides/mcp)
* [Agent workflows](/guides/agent-workflows)
# Email digests
Source: https://docs.paperzilla.ai/guides/email-digests
Set up and control Paperzilla email digests for each project.
Email digests are one way to consume project results. Your project feed remains the source of truth in app, RSS/Atom, and CLI.
Changing **Email frequency** affects only the emails. Paperzilla still evaluates papers continuously, keeps your feed current, and creates digests you can browse in the app.
## Set up digest delivery
During project setup:
1. Add a project name.
2. Choose **Email frequency**.
3. Set maximum papers per email.
4. Add your email when prompted.
5. Save project.
## Choose daily, weekly, or paused delivery
### Daily
Choose **Daily** when you want email soon after new relevant papers are ready.
* Daily is event-driven, not a guaranteed every-day blast.
* If no new papers qualify, no daily email is sent.
* Your feed and app digests continue as normal.
### Weekly
Choose **Weekly** when you want one scheduled checkpoint instead of email throughout the week.
* Your feed stays live and continues updating as papers are processed.
* Paperzilla still creates digests in the app during the week.
* The weekly email includes the best-scoring papers from the past week, up to your max-paper limit.
* Stronger matches are prioritized ahead of weaker related papers.
### Pause
Choose **Pause** when you want zero digest emails but still want discovery to continue.
* Your feed stays current.
* Digests are still created for browsing in the app.
* No digest emails are sent.
## Change digest volume
To reduce inbox volume, you can:
* lower **Max papers per email**
* switch from **Daily** to **Weekly**
* turn off **Include adjacent papers**
* pause email delivery entirely
## Weekly timing and timezone
Weekly delivery runs on the weekday and time you choose in delivery settings.
Paperzilla schedules that weekly email using your **Preferred time zone** in [Account settings](https://paperzilla.ai/account/settings). If you want the digest to arrive in a different local timezone, update **Preferred time zone** there.
## Pause email delivery
To stop digest emails without stopping your project:
1. Open delivery settings.
2. Set **Email frequency** to **Pause**.
3. Save.
Papers keep being discovered and digests are still created for browsing in the app, but no emails are sent. These digests show a **Paused** status badge.
This is different from [pausing the entire project](/answers/pause-project), which stops discovery altogether.
## What digest emails contain
A digest email includes a selected set of papers from your project, up to your max-paper limit.
What that means depends on the schedule:
* **Daily**: recent papers that are ready for that project, up to your limit
* **Weekly**: the best-scoring papers from the past week, up to your limit
If your project excludes adjacent papers, the email only includes **Must Read** papers even if related papers exist in the app digest.
## Common controls
* Edit project delivery settings
* Pause or resume project
* Tune keywords to reduce low-value matches
## Related answers
* [Should I choose daily or weekly digest emails?](/answers/daily-vs-weekly-digests)
* [How do I pause email digests without stopping my project?](/answers/pause-email-digests)
* [How do I get less email?](/answers/less-email)
* [How do I change max papers per email?](/answers/change-max-papers)
* [How do I pause a project?](/answers/pause-project)
# In-app feed
Source: https://docs.paperzilla.ai/guides/feed-in-app
Use the in-app project feed to triage papers, filter the list, and teach Paperzilla what belongs in future recommendations.
Each project has a live paper feed in the app.
This feed is designed for fast review:
* On desktop, you get a two-pane workspace with the paper list on the left and paper details on the right.
* On smaller screens, the list stays on the page and paper details open in a sheet.
## Open the feed
1. Go to the [Dashboard](https://paperzilla.ai/dashboard).
2. Open a project.
When you open a project, you land directly in its feed.
## Use the left-side controls
The left side is your triage area.
### Search
Use the search box to filter the list by:
* Paper title
* Author names
* Summary terms
### Feedback filters
Use the feedback pills to focus the list:
* **No feedback**: papers you have not rated yet
* **Useful**: papers that fit the project well
* **Very useful**: the strongest positive signal
* **Not for me**: papers that are not a fit for this project
You can combine search and feedback filters. Click an active filter again to clear it.
## Understand paper cards
The paper list is intentionally compact. Each row shows:
* Title and authors
* Source
* Relevance percentage
* Relevance class such as **Must read** or **Related**
* An optional feedback status icon in the top-right corner
## Open paper details
Click a paper in the list to inspect it in the detail pane.
The right side shows:
* Full title and authors
* Metadata
* Feedback controls
* Abstract
* Why the paper matched
* Optional project note
* Actions such as **View PDF**, **View on source**, **AI summary**, and **Share**
## Leave feedback
The feedback controls help you classify what belongs in the project feed.
* **Useful**: a good match that should help shape future recommendations
* **Very useful**: a standout paper you want Paperzilla to treat as a strong positive example
* **Not for me**: a poor fit for the project
If you choose **Not for me**, add a reason:
* **Off-topic**
* **Low quality**
If a paper no longer matches the active filter after you rate it, it may disappear from the left list. The detail pane stays open so you can finish the feedback action.
## Why feedback matters
Feedback is not just for organizing the current list. It helps Paperzilla improve what it recommends next for that project.
* Positive signals such as **Useful** and **Very useful** help reinforce the kinds of papers you want more often.
* Negative signals such as **Not for me** help reduce papers that are off-topic or low quality.
* The **No feedback** filter helps you work through fresh papers without losing track.
## Suggested workflow
1. Start with **No feedback**.
2. Search if you want to narrow the list by topic, author, or phrase.
3. Open papers one by one and read the right pane.
4. Mark each paper as **Useful**, **Very useful**, or **Not for me**.
5. Use **Very useful** to build a shortlist of the strongest papers.
6. Use **AI summary** or **Share** when you want to go deeper or send a paper to someone else.
## When the feed is empty
If a project is new or very narrow, you may see no papers yet.
Try:
1. Waiting for the next evaluation cycle.
2. Widening interest text slightly.
3. Removing overly strict exclude terms.
4. Enabling adjacent papers.
# RSS and Atom feeds
Source: https://docs.paperzilla.ai/guides/feeds
Copy and use your secure Paperzilla RSS/Atom feed URL in external feed readers.
Every project supports a secure RSS/Atom feed URL.
## Get your feed URL
From the project page:
1. Click **Copy RSS/Atom URL**.
2. Paste the URL into your feed reader.
From the CLI:
```bash theme={null}
pz feed --atom
```
## Use in feed readers
The URL works with common readers such as:
* Feedly
* NetNewsWire
* Vienna RSS
* Any reader that accepts Atom or RSS URLs
## Security model
The URL includes a personal token in the query string.
* Treat the URL like a secret.
* Anyone with the URL can read that project feed.
* Use private sharing practices when storing or sending it.
## Feed URL format
Paperzilla generates URLs in this form:
```text theme={null}
https://paperzilla.ai/api/feed/atom/?token=
```
See [API reference: RSS/Atom feed endpoint](/api-reference/rss-atom-feed).
# Use Paperzilla with MCP
Source: https://docs.paperzilla.ai/guides/mcp
Connect your MCP client to Paperzilla and access projects, feed search, paper detail, and markdown in natural language.
Use Paperzilla MCP when you want your AI assistant to pull your Paperzilla data directly.
If you are using Claude's custom connector flow, start with [Use Paperzilla MCP with Claude](/guides/claude). Claude uses a client-specific setup flow.
If you are using Codex, start with [Use Paperzilla with Codex](/guides/codex). Codex uses its own MCP config flow and also supports a separate CLI-based path.
Endpoint:
`https://paperzilla.ai/api/mcp`
If you want the short explanation of how MCP clients discover this URL and then learn what tools exist, see [How do clients discover the Paperzilla MCP URL and tools?](/answers/how-do-clients-discover-paperzilla-mcp).
## What you can do
* List your projects
* Open one project
* Pull feed items with filters like Must Read, since date, and limit
* Search across a full project feed by title, author, abstract, or summary text
* Open one canonical paper by paper ID, or one project recommendation by recommendation ID
* Get markdown for one paper or recommendation, and queue markdown generation when project context allows it
* Get the project's Atom URL
## Quickstart
### 1. Create your MCP API key
Create a personal MCP key in your Paperzilla dashboard:
1. Open your [dashboard](https://paperzilla.ai/dashboard).
2. Click **MCP API key** (top-right, key icon).
3. Click **Generate key**.
4. Copy the key and store it securely.
You can also use the same **MCP API key** panel to revoke the key.
If your account does not show that button yet, use the API key endpoints in the [developer appendix](/api-reference/mcp).
Keep this key private. You only see the plaintext value when you create or rotate it.
### 2. Add Paperzilla to your MCP client
Use:
* URL: `https://paperzilla.ai/api/mcp`
* Auth: either `Authorization: Bearer ` or `https://paperzilla.ai/api/mcp/?key=`
Header-based example config shape:
```json theme={null}
{
"mcpServers": {
"paperzilla": {
"transport": {
"type": "streamable_http",
"url": "https://paperzilla.ai/api/mcp"
},
"headers": {
"Authorization": "Bearer pzmcp_..."
}
}
}
}
```
URL-only client example:
```text theme={null}
https://paperzilla.ai/api/mcp/?key=pzmcp_...
```
### 3. Ask your assistant to call Paperzilla
Try requests like:
* "List my Paperzilla projects."
* "Show must-read papers for project `` since `2026-02-01` limit 20."
* "Search project `` for papers about proximity graphs."
* "Open paper ``."
* "Open recommendation ``."
* "Get the markdown for paper `` or recommendation ``."
* "Get the Atom URL for project ``."
## Available tools today
| Name | Purpose | CLI parity |
| ------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `projects_list` | List your projects | `pz project list --json` |
| `projects_get` | Get one project | `pz project --json` |
| `feed_get` | Get project feed with filters | `pz feed --must-read --since --limit` |
| `feed_search` | Search the full project feed with text query plus optional filters | `pz feed search --project-id --query ` |
| `feed_atom_url` | Get Atom URL for a project | `pz feed --atom` |
| `paper_get` | Get one paper by paper ID or one recommendation by recommendation ID | `pz paper ` or `pz rec ` |
| `paper_markdown` | Get paper markdown or queue markdown generation | `pz paper --markdown` or `pz rec --markdown` |
| `feed_title_filter` (optional prompt) | Ask the model to call `feed_search` for a server-side full-feed title search | No direct CLI equivalent |
Legacy dotted names like `paper.get` still work for direct `tools/call` compatibility, but Claude-compatible clients should use the underscore names above.
## How feed search works
Use `feed_search` when you want your MCP client to search across the whole project feed, not just currently visible items.
`feed_search` supports:
* `project_id`
* `q`
* `feedback_filter`
* `must_read`
* `limit`
* `offset`
It returns:
* `items`
* `limit`
* `offset`
* `has_more`
* `query`
Notes:
* search is server-side and scans the full feed
* query terms use prefix matching, so `Proxi` matches `Proximity`
* search is rank-first and does not return an exact total count in v1
If you want a focused Q\&A version, see [Can Paperzilla MCP search across an entire project feed?](/answers/can-paperzilla-mcp-search-across-an-entire-project-feed) and [How do I search a project feed through Paperzilla MCP?](/answers/how-do-i-search-a-project-feed-through-paperzilla-mcp).
## About prompts
You can ignore prompts and use direct tool calls only.
If your client supports prompts, `feed_title_filter` helps with one task:
* Call `feed_search`
* Search the full feed server-side for a title keyword
* Return matching results and explain that the search covers the full feed
## Markdown results
`paper_markdown` always returns a structured result.
* `status: "ready"` means markdown content is included in the response
* `status: "queued"` means Paperzilla accepted the request and queued markdown generation
* `status: "unavailable"` means that paper does not currently have a usable markdown source
## CLI vs MCP
Use [CLI](/guides/cli) for shell scripts and deterministic command outputs.
Use MCP when your assistant should reason across tools and ask follow-up questions.
Use [RSS/Atom](/guides/feeds) for passive feed-reader polling.
## Key safety
* Treat your MCP key like a password
* Rotate it immediately if exposed
* Revoke it from **MCP API key** in the dashboard if you stop using MCP
## Troubleshooting
* `401 Unauthorized` on `/api/mcp`: missing, revoked, or invalid MCP API key
* Empty or unexpected results: confirm you are using the key for the correct Paperzilla account
* `404 Not Found` for project/feed/paper calls: the resource is not accessible in your account
* `isError: true` with an ambiguous short ID message: retry with the full UUID instead of the 8-character short ID
# Use the Paperzilla CLI with OpenClaw
Source: https://docs.paperzilla.ai/guides/openclaw
Install the Paperzilla skill in OpenClaw so your agent can use the pz CLI to list projects, browse or search feeds, inspect paper metadata, and fetch markdown.
Use this guide when you want OpenClaw to use the Paperzilla CLI (`pz`) directly.
This is the CLI-based path. If you want Paperzilla over MCP instead, use [Use Paperzilla with MCP](/guides/mcp) or [Use Paperzilla MCP with Claude](/guides/claude).
## Before you start
* OpenClaw installed
* `pz` installed. If you have not installed it yet, start with the [CLI guide](/guides/cli).
* `pz` authenticated with `pz login`
* At least one Paperzilla project in your account
## How this works
The Paperzilla skill teaches OpenClaw when to use the `pz` CLI.
It does not replace the `pz` binary or your Paperzilla login.
OpenClaw can find the skill when you mention it in your request.
## Step 1: install and test the Paperzilla CLI
Install `pz`, then log in:
```bash theme={null}
pz login
```
Confirm the CLI works before you add the skill:
```bash theme={null}
pz project list
```
If this command does not work yet, fix the CLI setup first. OpenClaw depends on the same local `pz` install.
## Step 2: install the Paperzilla skill in OpenClaw
If you are using current OpenClaw, install the skill with the native OpenClaw command:
```bash theme={null}
openclaw skills install paperzilla
```
If you already use the separate ClawHub CLI, this also works:
```bash theme={null}
clawhub install paperzilla
```
`openclaw skills install` installs into the active workspace `skills/` directory.
The separate `clawhub` CLI installs into `./skills` under your current working directory, or falls back to the configured OpenClaw workspace.
If your OpenClaw version is older and `openclaw skills install paperzilla` fails because `skills` does not accept subcommands yet, use `clawhub install paperzilla` instead.
## Updating the skill
To update the Paperzilla skill to the latest published version:
```bash theme={null}
openclaw skills update paperzilla
```
If you use the separate ClawHub CLI instead:
```bash theme={null}
clawhub update paperzilla
```
To update every installed skill:
```bash theme={null}
clawhub update --all
```
## Step 3: ask OpenClaw to use Paperzilla
After install, ask OpenClaw to use Paperzilla in the workspace where you installed the skill.
You can ask for things like:
* "List my Paperzilla projects."
* "Show the newest must-read papers from my agents project."
* "Search my agents project for proximity graphs papers."
* "Open the newest must-read paper and summarize the metadata."
* "Get markdown for that paper."
* "Compare the two most recent must-read papers from this week."
* "Get the Atom feed URL for my evaluation project."
## What OpenClaw can do through the skill
The skill wraps the same `pz` workflows documented in the CLI guide.
That includes:
* listing projects
* opening one project
* browsing a feed with filters like `--must-read`, `--since`, and `--limit`
* searching the full feed with `pz feed search --project-id --query `
* opening one paper by UUID, short ID, or feed item ID
* fetching raw paper markdown
* getting an Atom feed URL
## When to use this vs MCP
Use OpenClaw plus CLI when:
* your agent already works in a terminal or workspace
* you want to reuse the local `pz` session
* you prefer deterministic CLI output and shell-friendly workflows
Use [MCP](/guides/mcp) when:
* your client already supports MCP directly
* you want a remote tool surface instead of a local CLI dependency
* you do not want to install `pz` in the agent environment
## Troubleshooting
### OpenClaw does not seem to use Paperzilla
Mention Paperzilla explicitly in the request so OpenClaw has a clear reason to use the skill.
### `pz` works in your shell but not for OpenClaw
Make sure `pz` is on `PATH` in the environment where OpenClaw runs.
### `clawhub` is not installed
That is fine. Use `openclaw skills install paperzilla` instead. The separate `clawhub` CLI is mainly for registry workflows such as publish or sync.
### You get no projects or no papers
Check the underlying CLI first:
```bash theme={null}
pz project list
pz feed
```
If the CLI shows no data, fix that first in Paperzilla or the local CLI session.
### Markdown is not ready yet
The Paperzilla CLI may ask you to try again shortly if markdown generation is still pending.
## Related
* [CLI guide](/guides/cli)
* [Agent workflows](/guides/agent-workflows)
* [Use OpenClaw and Telegram for research briefs](/guides/openclaw-telegram-briefs)
* [Does Paperzilla have an OpenClaw skill?](/answers/openclaw-skill)
# Use OpenClaw and Telegram for research briefs
Source: https://docs.paperzilla.ai/guides/openclaw-telegram-briefs
Run Paperzilla brief workflows in Telegram through OpenClaw and the Paperzilla CLI.
Use this guide when you want to discuss one Paperzilla project in Telegram and receive a weekday research brief there.
This walkthrough uses OpenClaw for chat and scheduling, Telegram as the delivery surface, and the Paperzilla CLI (`pz`) as the Paperzilla data transport.
## Before you start
* Complete the [CLI guide](/guides/cli) and [OpenClaw guide](/guides/openclaw).
* Make sure `pz project list` works in the same environment where OpenClaw runs.
* Make sure your Telegram channel is working in OpenClaw. See [Telegram in OpenClaw](https://docs.openclaw.ai/channels/telegram).
* Pick one Paperzilla project for this workflow.
* Prepare one short sentence for "our work" if the agent does not already know it. Example: `Our work is evaluation infrastructure for coding agents.`
## How this stack works
* You ask for papers in Telegram.
* OpenClaw reads your Paperzilla data through `pz`.
* OpenClaw can either browse the latest feed items or search the full feed for a topic.
* For the weekday brief, OpenClaw runs a cron job and sends the result back to Telegram.
* Paperzilla still owns the project, feed, and relevance ranking. OpenClaw is the chat and delivery layer on top.
## Use case 1: on-demand paper discussion
Start in a Telegram DM or group where your OpenClaw agent is already active.
First ask for the latest papers from one project:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
Our work: we build evaluation infrastructure for coding agents.
Pull the latest papers from this project and show the top 5.
For each one, include the title, date, source, and whether it looks Must Read or Related.
```
Then ask for metadata for one paper:
```text theme={null}
Open the second paper and show the metadata only.
Include authors, publication date, source, URL, and the Paperzilla ID you used.
```
Then fetch markdown and connect it back to your team context:
```text theme={null}
Fetch the markdown for that paper.
Summarize the contribution, method, results, and limits.
Then explain why it matters for our work.
```
Then keep the discussion going in the same Telegram chat:
```text theme={null}
Given our current work, should we read this now, keep it as Related, or ignore it this week?
Defend the recommendation.
```
You can also ask for full-feed search instead of latest-first browsing:
```text theme={null}
Use my Paperzilla project `Agents evaluation`.
First find the project ID.
Then search the full feed for "latent retrieval".
Show the top matches with title, date, and why each one matters for our work.
```
Good replies for this flow should:
* keep the project name and "our work" context in view
* separate metadata from interpretation
* explain relevance in terms of your actual work, not generic importance
* keep the paper discussion going instead of stopping at one summary
If markdown is still being prepared, ask again after a short wait.
## Use case 2: weekday research brief in Telegram
This pattern sends one brief to Telegram every weekday.
Use an OpenClaw cron job for the schedule and Telegram for delivery. OpenClaw's cron docs use standard cron syntax, so `1-5` in the day-of-week field means weekdays.
```bash theme={null}
openclaw cron add \
--name "Paperzilla weekday brief" \
--cron "30 8 * * 1-5" \
--tz "Europe/Athens" \
--session isolated \
--message "Use my Paperzilla project . Our work: . Pull the newest papers from the feed. Return a Telegram-ready brief with: project name and date; newest papers checked; for each selected paper, one short summary and one sentence on why it is relevant to our work; if there are no new papers, say that explicitly. Keep it concise." \
--announce \
--channel telegram \
--to ""
```
Replace these placeholders before you run it:
* `` with the Paperzilla project name you want to follow
* `` with your short "our work" description
* `Europe/Athens` with your own timezone
* `` with the Telegram target format you use in OpenClaw
The expected brief format is:
* project name and date
* how many new papers were checked
* for each selected paper, one short summary and one sentence on why it is relevant to your work
* a clear "no new papers today" line when nothing new qualifies
See [OpenClaw cron jobs](https://docs.openclaw.ai/automation/cron-jobs) and [OpenClaw message delivery](https://docs.openclaw.ai/cli/message) for channel and target details.
## Limits and troubleshooting
* If `pz` does not work in OpenClaw, fix the CLI setup first with [CLI guide](/guides/cli) and [OpenClaw guide](/guides/openclaw).
* If the agent returns no papers, confirm the project is active and already has feed items.
* If markdown is not ready yet, retry after a short wait instead of changing the prompt.
* If the cron job does not fire, check that the OpenClaw Gateway is running continuously and that your timezone is correct.
## Optional shortcut
If you want this workflow packaged as a reusable skill, see the [`paperzilla-monitor` skill repo](https://github.com/paperzilla-ai/paperzilla-skills). Current install and distribution details live in that repo's README.
# Projects
Source: https://docs.paperzilla.ai/guides/projects
Create, tune, and manage Paperzilla projects for better paper relevance.
A project is your long-running research intent in Paperzilla.
It includes:
* Categories
* Interest description
* Include and exclude keywords
* Feed and email delivery settings
* Visibility and sharing settings
## Create a project
1. Start from chat on the [homepage](https://paperzilla.ai) or [dashboard](https://paperzilla.ai/dashboard).
2. Describe your research focus.
3. Review the generated proposal.
4. Click **Set up delivery** and save.
## Tune project relevance
Use these levers first:
* **Interest description**: one tight paragraph of what you care about
* **Include keywords**: terms that should increase relevance
* **Exclude keywords**: terms that should remove noise
* **Include adjacent papers**: include related but non-direct matches
Start narrow. Add broader terms only after you confirm quality.
## Manage project settings
From the project page, you can:
* Edit project details
* Edit delivery settings
* Choose **Daily**, **Weekly**, or **Pause** for digest emails
* Toggle visibility (`private` or `public`)
* Pause or resume the project
* Copy RSS/Atom URL
* Browse generated summaries
* Delete the project
## Status behavior
* **Active**: project is discovering papers
* **Paused**: discovery and digest emails are paused
* **Email paused**: discovery continues but digest emails are not sent (set via **Email frequency** → **Pause** in delivery settings)
* **Setup needed**: project needs delivery completion
## Delivery behavior
* **Daily**: Paperzilla emails you when new relevant papers are ready. This is not necessarily every calendar day.
* **Weekly**: Paperzilla keeps your feed current and still builds digests in the app, but sends one weekly email with the best-scoring papers from the past week.
* **Pause**: Paperzilla continues discovery and keeps your feed available, but sends no digest emails.
Weekly delivery uses the weekday and time you choose in delivery settings, based on your **Preferred time zone** in [Account settings](https://paperzilla.ai/account/settings).
## Private vs public
* Projects are private by default.
* Public projects can be shared and listed on public pages.
* You can switch between private and public at any time.
See [sharing and visibility](/guides/sharing-and-visibility).
## Related guides
* [In-app feed](/guides/feed-in-app)
* [Email digests](/guides/email-digests)
* [RSS and Atom feeds](/guides/feeds)
# Public projects
Source: https://docs.paperzilla.ai/guides/public-projects
Browse and reuse public Paperzilla projects as templates for your own setup.
Paperzilla has a public browsing surface where you can inspect public projects and their recent papers.
## Browse public projects
1. Open [paperzilla.ai/public-digests](https://paperzilla.ai/public-digests).
2. Search by topic, category, author, or paper terms.
3. Open a project card to inspect examples.
## Use a public project as a starting point
Click **Subscribe** on a public project.
Paperzilla opens chat with that project's setup preloaded. You can then:
1. Keep it as-is.
2. Edit categories and keywords.
3. Save it as your own project.
## Owner controls
Only the project owner controls whether a project is public or private.
Switching back to private removes it from public visibility.
## Related
* [Projects](/guides/projects)
* [Sharing and visibility](/guides/sharing-and-visibility)
# Sharing and visibility
Source: https://docs.paperzilla.ai/guides/sharing-and-visibility
Control project privacy and share Paperzilla project or paper links.
Projects can be private or public.
## Visibility states
* **Private** (default): only you can access the project.
* **Public**: others can open shared links, and the project can appear on public pages.
You can change visibility in project configuration.
## Share a project
1. Open your project issue or overview page.
2. Click **Share**.
3. Copy link, or share directly by social/email actions.
If the project is private, Paperzilla prompts you to make it public first.
## Share a single paper
From a paper page inside a project, use **Share**.
If needed, make the project public before sharing.
## If someone cannot open your link
Typical cause: project is private and the recipient is not the owner.
Fix:
1. Open project settings.
2. Set visibility to public.
3. Share the link again.
## Remove public access
Set visibility back to private. Existing public access stops after the change.
# AI summaries
Source: https://docs.paperzilla.ai/guides/summaries
Generate and read Paperzilla AI summaries for papers in your projects.
Paperzilla can generate structured AI summaries for papers.
## Generate a summary
1. Open a paper page.
2. Click the summary action.
3. Wait for status to complete.
## Summary statuses
* `queued`: request accepted
* `processing`: summary generation in progress
* `failed`: generation failed, retry is available
* `completed` or `available`: summary is ready
## Summary structure
Summaries can include sections such as:
* ELI5
* Overview
* Research question
* Methodology
* Results
* Limitations
* Takeaway
* Conflicts of interest
## View all summaries for a project
From the project page, open **View summaries** when summaries exist.
## If generation fails
1. Retry from the paper page.
2. Check again later.
3. Confirm you are signed into the right account (see [account and sign-in](/guides/account-and-sign-in)).
# Troubleshooting
Source: https://docs.paperzilla.ai/guides/troubleshooting
Fix common Paperzilla issues for projects, feeds, summaries, and sharing.
## I created a project but see no papers
1. Wait for initial processing.
2. Check that the project is not paused.
3. Broaden interest text slightly.
4. Remove strict exclude keywords.
5. Enable adjacent papers.
## Copy RSS/Atom URL fails
1. Confirm you are signed in.
2. Retry from project page.
3. Refresh session and try again.
4. If needed, use `pz feed --atom` from CLI.
## Shared link does not open for recipient
1. Confirm project visibility is public.
2. Re-copy share link from the share modal.
3. Send updated link.
## Summary is stuck or failed
1. Wait if status is `queued` or `processing`.
2. Use retry when status is `failed`.
3. Open from the same account that owns project access.
## I am getting too many emails
* Remove irrelevant categories from the project.
* Tighten the interest description to be more specific about what qualifies.
* Remove broad boost keywords pulling in off-topic papers.
* Add exclude keywords for recurring noise (use sparingly — they are hard filters).
* Turn off **Include adjacent papers**.
* As a last resort, pause email delivery in **Edit Email Delivery** and use an [RSS/Atom feed](/guides/feeds) instead.
See [How do I get less email?](/answers/less-email) for details on each option.
## I signed in but cannot find my project
1. Check you used the same email from setup.
2. Look in the [**Projects** dashboard](https://paperzilla.ai/dashboard).
3. If setup was in progress, reopen the magic link and finish delivery.
# Paperzilla docs portal
Source: https://docs.paperzilla.ai/index
Official Paperzilla docs portal for projects, feeds, CLI, MCP, agent workflows, and integrations.
Paperzilla helps you track a research topic as a **project**.
Each project gives you five ways to consume papers:
* In-app feed
* RSS/Atom feed URL
* CLI (`pz`)
* MCP
* Email digests
Paperzilla also works as a **data layer for agents** through CLI, RSS/Atom, and MCP.
## Start here
See who it helps, when to use it, and how it fits your workflow.
Use CLI, RSS/Atom, and MCP for automation.
Connect Claude, Cursor, and other MCP clients to Paperzilla.
Create your first project and start reading papers in minutes.
Learn how projects work and how to tune relevance.
Use filters, search, and relevance labels in the app.
Control digest volume and delivery behavior.
Add secure feed URLs to your feed reader.
Find fast answers in one-question-per-page format.
## Core terms
* **Project**: your standing research intent (topic + interests + keywords + settings)
* **Feed**: continuously updated list of matched papers for a project
* **Email digest**: a scheduled email selection from your project
* **Must Read**: highest relevance class in your project
* **Related**: relevant but lower-priority papers in your project
## Next steps
1. Follow the [quickstart](/quickstart).
2. Configure your project in [projects](/guides/projects).
3. Choose your preferred reading surface: [in-app feed](/guides/feed-in-app), [RSS/Atom](/guides/feeds), [CLI](/guides/cli), or [MCP](/guides/mcp).
4. If you run agent workflows, start with [Agent workflows](/guides/agent-workflows).
# Quickstart
Source: https://docs.paperzilla.ai/quickstart
Create your first Paperzilla project and start consuming papers via app feed, RSS/Atom, CLI, MCP, or email digest.
This guide gets you from zero to a working project.
## Before you start
* You can begin anonymously in chat.
* You will add your email when you save delivery.
## Step 1: create a project from chat
1. Open [paperzilla.ai](https://paperzilla.ai).
2. Click **See today's must-reads**.
3. Tell Paperzilla what you track:
* categories
* interest description
* include keywords
* exclude keywords
4. Review the proposal and click **Set up delivery**.
## Step 2: save project delivery
1. Add a **Project name**.
2. Choose **Email frequency**: **Daily** or **Weekly**.
3. Set **Max papers per email**.
4. If prompted, add **Your name** and **Your email**.
5. Click **Save project**.
Paperzilla sends a magic-link email when account confirmation is needed.
* **Daily** sends email when new relevant papers are ready. If nothing new qualifies, no daily email is sent.
* **Weekly** keeps your feed live but sends one scheduled email with the best-scoring papers from the past week.
## Step 3: open your project
After save, open your project page to:
* Read feed preview
* Open full paper feed
* Copy RSS/Atom URL
* Generate AI summaries
* Edit visibility, pause state, and keywords
## Step 4: choose how you read
* **In app**: [in-app feed guide](/guides/feed-in-app)
* **RSS/Atom**: [feeds guide](/guides/feeds)
* **CLI**: [CLI guide](/guides/cli)
* **MCP**: [MCP guide](/guides/mcp)
* **Email**: [email digests guide](/guides/email-digests)
## Step 5: refine relevance over time
As papers arrive, improve precision by editing:
* interest text
* include keywords
* exclude keywords
* adjacent papers toggle
Use [project management](/guides/projects) for details.
# How Paperzilla works
Source: https://docs.paperzilla.ai/what-is-paperzilla/how-it-works
Paperzilla turns your research intent into project feeds and digest delivery across app, RSS/Atom, CLI, and email.
## 1) Define your project
You provide:
* Categories
* Interest description
* Include keywords
* Exclude keywords
This defines your research intent.
## 2) Paperzilla evaluates new papers
As new papers arrive, Paperzilla evaluates them against your project and assigns relevance classes.
In-app filters expose this as:
* **Must Read**
* **All** (Must Read + Related)
## 3) You consume results where you work
For each project, you can consume results through:
* [In-app feed](/guides/feed-in-app)
* [RSS/Atom URL](/guides/feeds)
* [CLI (`pz`)](/guides/cli)
* [Email digests](/guides/email-digests)
## 4) You refine signal quality over time
You improve relevance by updating:
* Interest text
* Include/exclude keywords
* Adjacent papers toggle
* Max papers per email
* Pause/resume state
## Fast discovery and curated briefing
Paperzilla supports two rhythms:
* **Fast**: in-app feed for immediate discovery
* **Curated**: email digests for controlled review
# What is Paperzilla?
Source: https://docs.paperzilla.ai/what-is-paperzilla/index
Paperzilla helps you track new research with project-based feeds and curated email digests.
Paperzilla is a research signal product.
You define a topic as a **project**, and Paperzilla continuously finds and ranks new papers for that project.
## What you get
* A live project feed in the app
* A secure RSS/Atom URL for feed readers
* CLI access for terminal and agent workflows
* Email digests for curated updates
* AI-generated summaries on paper pages
## The core job Paperzilla does
Paperzilla helps you manage the tension between:
* **FOMO**: "I do not want to miss new work"
* **Noise**: "I do not want to read low-value papers"
It does this with project-level relevance, **Must Read** prioritization, and delivery controls like max papers per email.
## How Paperzilla is organized
1. You create one or more projects.
2. Each project has categories, interest text, and include/exclude keywords.
3. You consume results in app, RSS/Atom, CLI, and email digests.
4. You refine settings over time as your topic evolves.
## Explore this section
## Related Q\&A
* [What problem does Paperzilla solve?](/answers/what-problem-paperzilla-solves)
* [Is Paperzilla for humans or AI agents?](/answers/is-paperzilla-for-ai-agents)
* [Do I need to code to use Paperzilla?](/answers/do-i-need-to-code)
# Common use cases
Source: https://docs.paperzilla.ai/what-is-paperzilla/use-cases
Practical ways teams and individuals use Paperzilla to track and prioritize scientific papers.
## Daily field monitoring
Create a project for a field and review the [feed](/guides/feed-in-app) each day using the **Must Read** filter.
## Topic watchlists
Create separate projects for each major research direction, then tune keywords per project.
## Weekly executive or lab briefings
Use [email digests](/guides/email-digests) to deliver selected papers with a controlled max-paper limit.
## Method and benchmark tracking
Track specific methods, model families, datasets, or experimental paradigms via include/exclude keywords.
## Competitive and adjacent monitoring
Keep one broad "adjacent" project active to spot nearby work you would otherwise miss.
## Agent-assisted workflows
Use [CLI](/guides/cli) and [RSS/Atom](/guides/feeds) outputs in scripts, automations, and agent pipelines.
## Reading backlog triage
Use [project summaries](/guides/summaries) and relevance labels to decide what to read deeply versus skim.
# Who Paperzilla is for
Source: https://docs.paperzilla.ai/what-is-paperzilla/who-its-for
Paperzilla is useful for researchers, technical teams, and AI-forward workflows that need high-signal paper monitoring.
Paperzilla is useful if you need continuous awareness of new papers in one or more topics.
## Primary users
* Individual researchers tracking fast-moving fields
* Research engineers and applied ML teams
* Bioinformatics and computational science practitioners
* Technical founders and R\&D teams
* AI-forward users who automate research monitoring
## When Paperzilla is a strong fit
Paperzilla is a strong fit when you:
* Need to track multiple evolving topics
* Want both quick scanning and curated delivery
* Prefer project-level control over generic keyword alerts
* Want structured outputs for tools and scripts
## Human and agent workflows
Paperzilla supports both:
* **Human workflows** through app feed and email digests
* **Programmatic workflows** through [CLI](/guides/cli) and [RSS/Atom feeds](/guides/feeds)
## Who may not need it
If you only need occasional one-off paper lookup, a simple search engine may be enough.
Paperzilla is designed for ongoing monitoring, prioritization, and workflow integration.
# Why use Paperzilla
Source: https://docs.paperzilla.ai/what-is-paperzilla/why-paperzilla
Paperzilla is built for ongoing, high-signal paper monitoring rather than one-off paper search.
Paperzilla is useful when basic alerts are not enough.
## The core difference
Basic alert tools answer: "Does this match a keyword?"
Paperzilla answers: "Is this worth my attention for this project right now?"
## What this changes in practice
* You manage each topic as its own project
* You prioritize with Must Read and relevance scores
* You control delivery volume by project
* You can switch between fast feed and curated digest modes
* You can pipe the same project into app, RSS/Atom, CLI, and email
## When Paperzilla creates the most value
* High paper volume fields
* Teams with limited reading time
* Users balancing breadth and depth across topics
* Workflows where missing one important paper is costly
## Next steps
* Start with [quickstart](/quickstart)
* Set up your first [project](/guides/projects)
* Review [common use cases](/what-is-paperzilla/use-cases)