pebbles-scout
Inbound research, watchlists, and candidate discovery for AI agents — Tier 2 of the Pebbles family.
pip install pebbles-scout
pebbles-scout is the inbound half of an agent's public-facing engine: it monitors sources (RSS in v0.1; Twitter / Reddit / forwarded URLs in v0.2), scores candidate items against your topical clusters, maintains watchlists with a three-route proposal flow, and emits candidates for downstream consumers (like pebbles-presence) to pick up.
Built on pebbles-core v0.2.0.
What Scout does
For a Principal you define, Scout:
- Monitors sources — RSS feeds, mapped per-cluster
- Pre-filters — drops obvious rejects (v0.1 ships a stub; v0.2 adds rage-farm / self-promo rules)
- Scores relevance — LLM-as-judge rates how well each item fits its tagged cluster
- Emits candidates — items above your threshold land in
scout_candidatesfor downstream - Maintains watchlists — three proposal routes (operator / principal / scout-auto)
Scout does NOT:
- Draft content (that's pebbles-presence)
- Rate voice fit (that's Presence's rater)
- Post anything (that's Presence's platform adapters)
The split keeps each module composable.
Quick start
# Install
pip install pebbles-scout
# Scaffold a starter principal
pebbles-scout init my-agent
cd my-agent
# Edit principal.yaml — define your clusters and RSS feeds
$EDITOR principal.yaml
# Print the schema migration
pebbles-scout migrate
# → run the SQL against your Supabase / Postgres
# Run one fetch cycle (needs ANTHROPIC_API_KEY)
pebbles-scout run --principal principal.yaml
# Add an account to a watchlist (operator route)
pebbles-scout propose @some_handle --cluster my_cluster --principal principal.yaml
Reference principal: Harbor
examples/harbor/ ships a working configuration for a fictional coastal-AI persona named Harbor (the cross-package demo persona introduced in pebbles-core v0.2). Use it as a starting point or to verify your install.
pebbles-scout run --principal examples/harbor/principal.yaml
v0.1 scope
In v0.1:
- Cluster definitions +
scout_clusterstable - Watchlist +
scout_accountstable + 3-route proposal flow - Candidate emission +
scout_candidatestable with state machine - One source:
RssSource(cluster-aware RSS monitoring) - LLM relevance matcher (composes pebbles-core's
LLMJudgeRater) - Pass-through pre-filter (real rules in v0.2)
- Watchlist proposal flow (operator-add immediate; principal-propose gated via
ApprovalChannel) - In-memory reference impls for every store (CandidateStore, WatchlistStore)
- CLI:
init,migrate,run,propose,status
Deferred to v0.2+:
- SupabaseCandidateStore + SupabaseWatchlistStore (persistent storage behind
[supabase]extra) - Twitter MCP, Reddit, Telegram-URL sources
- Cluster monoculture quotas (enforced)
- Account reputation scoring (computed)
- Scout auto-proposal
- Pre-filter rules (rage-farm, self-promo)
- Bulk operations
- Circuit breakers
License
Apache 2.0 — see LICENSE.
Family
- pebbles-core — Tier 1, recipient-as-user delivery + substrate primitives
- pebbles-scout — Tier 2 (this package), inbound research
- pebbles-presence — Tier 3 (planned), outbound drafter / approval / posting
- pebbles-family — Tier 4 (planned), recipient-as-user's-people delivery
Metadata
Release files for pebbles-scout 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pebbles_scout-0.1.0.tar.gz | 30.8 kB | Without provenance | Details for pebbles_scout-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pebbles_scout-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for pebbles_scout-0.1.0-py3-none-any.whl |
Total release size: 56.1 kB
Release files / pebbles_scout-0.1.0.tar.gz
| Download URL | pebbles_scout-0.1.0.tar.gz |
|---|---|
| Size | 30.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f615d3b45250e61e05836856c77ac9e75f5101f8be08d1ae725a9d76b17a9973
|
|
BLAKE2b-256 checksum How to use checksums |
fc45ddd3b6350c054673f1a69e618843956a9ffd5fb3a6347ac2b06e17cec105
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pebbles_scout-0.1.0-py3-none-any.whl
| Download URL | pebbles_scout-0.1.0-py3-none-any.whl |
|---|---|
| Size | 25.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fdaa8a386ed42b3a8efedc1836020285624caea7ece65891b4dea5de41b42c2e
|
|
BLAKE2b-256 checksum How to use checksums |
3a287a22e5c32e4a7e7b1daa4a6696c30570437a9646d25ea1469c2311c4a33e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for pebbles-scout 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.