omnivore-cli
2
总安装量
2
周安装量
#66582
全站排名
安装命令
npx skills add https://github.com/benature/omnivoreapi --skill omnivore-cli
Agent 安装分布
openclaw
2
gemini-cli
2
github-copilot
2
codex
2
kimi-cli
2
cursor
2
Skill 文档
Omnivore CLI
Overview
The omnivore CLI is a typer-based command-line tool provided by the omnivore_api Python package.
Entry point: omnivore_api/cli.py â registered as omnivore via [project.scripts] in pyproject.toml.
First-time Setup
omnivore init
# prompts for API token and API URL
# writes to ~/.config/omnivore-api/config.yaml
Config file format (~/.config/omnivore-api/config.yaml):
api_token: "your-token-here"
api_url: "https://api-prod.omnivore.app/api/graphql"
Available Commands
| Command | Description | Key options |
|---|---|---|
omnivore init |
Interactive config setup | â |
omnivore save-url <url> |
Save a URL | --label (repeatable) |
omnivore get-articles |
List inbox articles | --limit, --after, --query, --format |
omnivore get-profile |
Current user info | â |
omnivore get-labels |
All labels | â |
All read commands output JSON to stdout.
Usage Examples
# Save with labels
omnivore save-url https://example.com --label reading --label python
# Paginated fetch, markdown format
omnivore get-articles --limit 20 --after 20 --format markdown
# Filter by date range (Omnivore search syntax)
omnivore get-articles --query "in:inbox published:2024-01-01..*"
# Pipe to jq
omnivore get-labels | jq '.[].name'
Adding a New CLI Command
- Open
omnivore_api/cli.py - Add a new function decorated with
@app.command("command-name") - Use
Annotated+typer.Option/typer.Argumentfor parameters - Call the corresponding
OmnivoreAPImethod via_load_config() - Output with
typer.echo(json.dumps(result, indent=2))
Example skeleton:
@app.command("delete-article")
def delete_article(
article_id: Annotated[str, typer.Argument(help="Article ID")],
):
"""Delete an article from Omnivore."""
client = _load_config()
result = client.delete_article(article_id)
typer.echo(json.dumps(result, indent=2))