← Back to Skills Marketplace
yzhong52

AgentZero

by Yuchen · GitHub ↗ · v1.0.7 · MIT-0
cross-platform ⚠ suspicious
535
Downloads
1
Stars
0
Active Installs
10
Versions
Install in OpenClaw
/install agent-zero
Description
Interact with the AgentZero real estate listing tracker (local Rust/Axum backend at http://localhost:8000). Use when asked to add a property listing by URL,...
README (SKILL.md)

AgentZero Skill

AgentZero is a personal real estate listing tracker. Backend at http://localhost:8000.

Prerequisites

Before using this skill, ensure the following are in place:

Requirement Details
AgentZero backend Must be running at http://localhost:8000 (Rust/Axum). Start with ./scripts/run_backend.sh in the project directory.
ANTHROPIC_API_KEY Required for automatic listing triage. Set in your environment before starting the backend. Get your key at console.anthropic.com.
himalaya CLI email client — must be installed (brew install himalaya or similar) and configured with your Gmail account via IMAP. Config at ~/.config/himalaya/config.toml.
himalaya credentials Gmail app password or OAuth token stored in keychain. Required for the Daily Email Scan workflow.
openclaw browser Used by the Daily Email Scan to open Gmail and click listing links. Start with openclaw browser --browser-profile openclaw start.
AgentZero frontend (optional) Vite UI at http://localhost:5173 for reviewing listings. Start with ./scripts/run_frontend.sh.

Privacy & Email Access

The Daily Email Scan workflow accesses your Gmail inbox. Specifically it:

  • Reads envelope metadata (subject, sender, ID) of Redfin alert emails via himalaya envelope list
  • Opens Gmail in the openclaw browser to click through listing links (no email body text is read or stored)
  • Records processed email IDs and listing URLs in ~/.openclaw/\x3CWORKSPACE>/skills/agent-zero/agent_zero_claw_logs/

The scan only runs when explicitly triggered (cron or manual) and is scoped to from:redfin.com emails only.


Key APIs

Action Method Endpoint Body / Params
Add listing (AI) POST /api/listings/agent-suggest {"url": "..."}
List all listings GET /api/listings ?status=...
Get single listing GET /api/listings/:id

Responses are JSON Property objects (see field list below).

Workflow: Add a Listing by URL

  1. POST /api/listings/agent-suggest with {"url": "\x3Curl>"}.
  2. On 409 CONFLICT response: the listing already exists. Parse the JSON body for existing_id and existing_title and report to user.
  3. On success: the listing is saved as AgentPending. The backend agent will further review i.
  4. Log a summary to the daily notes file (see Logging section).

Logging — agent_zero_claw_logs/

After every action (add, refresh, skip), append a summary to:

~/.openclaw/\x3CWORKSPACE>/skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md

Here \x3CWORKSPACE> is the name of your OpenClaw workspace for the specific agent; it can be workspace if it is the default agent; or workspace followed by the agent name.

Create the folder and file if they don't exist.

Format:

## HH:MM — Added listing #38
- **Email:** https://mail.google.com/mail/u/0/#inbox/\x3Cthread_id>
- **Title:** 7778 Nanaimo St, Vancouver - 6 beds/3.5 baths
- **URL:** https://www.redfin.ca/...
- **Price:** $2,198,000
- **Status:** AgentPending (agent review running in background)

## HH:MM — Skipped listing
- **Email:** https://mail.google.com/mail/u/0/#inbox/\x3Cthread_id>
- **URL:** https://...
- **Reason:** No search profile matches — listing is in Burnaby, all profiles target Vancouver.

The thread_id is the hex ID visible in the Gmail URL after opening the email in the browser.

Workflow: Daily Email Scan (Cron)

This is the workflow for the scheduled daily cron task.

Requires: himalaya configured with Gmail + openclaw browser running. See Prerequisites above.

Step-by-step

  1. Notify your user (via whatever messaging channel is configured): "🏠 AgentZero daily scan starting — checking Redfin emails..."

  2. Write scan-start entry to ~/.openclaw/\x3CWORKSPACE>/skills/agent-zero/agent_zero_claw_logs/YYYY-MM-DD.md immediately (create file/folder if needed):

    ## HH:MM — Scan started
    - Checking Redfin emails...
    
  3. Load state file ~/.openclaw/\x3CWORKSPACE>/skills/agent-zero/agent_zero_claw_logs/processed_emails.json

    • If missing, treat as {"processed_ids": [], "date_counts": {}}
    • Format: {"processed_ids": ["57471", ...], "date_counts": {"2026-03-09": 2}}
    • processed_ids are himalaya envelope IDs (sequential integers) — used to avoid re-processing emails already handled in previous scans
    • Append to log:
      ## HH:MM — Loaded state
      - Already processed IDs: 57471, 57457
      - Processed today: 1
      
  4. Check daily limit: count how many emails were processed today (from date_counts[today]). If ≥ 3, append to log and notify your user:

    ## HH:MM — Skipped scan
    - Reason: Daily limit (3) already reached.
    
  5. List emails via himalaya:

    himalaya envelope list --output json 2>/dev/null
    

    Filter to emails where from.addr contains redfin.com and ID is NOT in processed_ids. Take up to 3 - already_processed_today.

    Append to log immediately:

    ## HH:MM — Found N new Redfin email(s)
    - Email IDs: 57493, 57490
    - Already processed today: 1 (limit: 3)
    
  6. For each email:

    a. Append to log before opening:

    ## HH:MM — Processing email \x3Cid>: "\x3Csubject>"
    - Opening in Gmail...
    

    b. Open the email in Gmail via browser (run openclaw browser --browser-profile openclaw start if not already running):

    • Navigate to Gmail and search using the subject and sender from the himalaya envelope (e.g. from:[email protected] subject:"\x3Csubject from step 5>")
    • Click the matching email to open it

    c. For each listing link visible in the email body:

    • Skip "Go tour it", "Tour home", "Schedule a Tour", and "View all saved open houses" links — these go to booking pages, not listings
    • Skip full address links (e.g. "930 Cambie St, Vancouver, BC, V6B 5X6") — these go to Google Maps
    • Click the short property name links (e.g. "7778 Nanaimo St" or "2094 E 7th Ave") — these are the actual Redfin listing links
    • Read the final URL from the new tab (e.g. https://www.redfin.ca/bc/vancouver/.../home/200788210)
    • Close the tab
    • ⚠️ Never construct or guess URLs. Only use URLs extracted directly by clicking through the email. Do not derive URLs from propertyId params or address strings.
    • Append to log before submitting:
      - Found listing URL: https://www.redfin.ca/...
      - Submitting to AgentZero...
      
    • Submit via Add Listing workflow above (no profile selection needed — agent assigns it)
    • Append result to log immediately after each listing (success, skip, or 409)

    d. Mark email as processed:

    • Update processed_ids in state file with this email ID
    • Increment date_counts[today]
    • Add agent_zero label in Gmail via himalaya:
      himalaya message copy \x3Cemail_id> "agent_zero"
      
    • Append to log:
      - Email \x3Cid> marked as processed.
      
  7. Append final summary to log:

    ## HH:MM — Scan complete
    - Processed N emails, added M listings (K skipped).
    
  8. Notify your user with summary and a prompt to review new listings in the frontend:

    ✅ AgentZero scan complete — processed 2 emails, added 3 listings (agent review running in background).
    
    🏡 New listings will appear in Review once the agent finishes: http://localhost:5173/inbox
    

State file location

~/.openclaw/\x3CWORKSPACE>/skills/agent-zero/agent_zero_claw_logs/processed_emails.json

Usage Guidance
Before installing: (1) Note the registry summary is inconsistent with SKILL.md — this skill does require an ANTHROPIC_API_KEY and a himalaya IMAP config if you enable the Daily Email Scan. (2) Review scripts/run_backend.sh and run_frontend.sh and the backend code (already included) before building; cargo/npm will fetch dependencies from public registries. (3) The Daily Email Scan will access your Gmail via himalaya and use the openclaw browser to click links — only enable this workflow if you consent to IMAP access and browser automation; consider creating an app-specific account or app password and ensure credentials are stored safely. (4) The backend may fall back to macOS Safari AppleScript for some blocked sites — if you are not on macOS the fallback may behave differently. (5) Run the service in an isolated environment (e.g., a dedicated workspace or VM) if you are uncomfortable exposing Gmail/browser profiles or running locally-built networked services. (6) If you plan to use the Anthropic triage, understand that the ANTHROPIC_API_KEY will be used to call api.anthropic.com from your machine; if you do not want remote triage, run the backend without that key (the code will skip or error as documented).
Capability Analysis
Type: OpenClaw Skill Name: agent-zero Version: 1.0.7 The AgentZero skill is a sophisticated real estate listing tracker that integrates a Rust backend, React frontend, and AI-driven triage via Claude. It utilizes high-privilege capabilities, including browser automation (Safari via AppleScript and Chrome via CDP) and email access (via the himalaya CLI), to bypass bot detection on real estate sites and ingest listing alerts. While these capabilities represent a significant attack surface, they are transparently documented in SKILL.md and README.md and are functionally necessary for the stated purpose. The code follows standard development practices, includes drift-detection for TypeScript bindings, and lacks evidence of intentional data exfiltration or malicious execution.
Capability Assessment
Purpose & Capability
The codebase (Rust backend + TypeScript frontend) clearly implements a local listing tracker that fetches/parses listing pages, caches HTML snapshots, downloads images, and triages listings via Anthropic Claude. Required binaries (cargo, node, npm, sqlite3, himalaya, openclaw) are consistent with building/running the project and the Daily Email Scan workflow.
Instruction Scope
SKILL.md and CLAUDE.md instruct the agent to access Gmail (via himalaya IMAP envelope queries) and to use openclaw browser automation to open Gmail/listing pages. While the skill states it only reads envelope metadata and only opens Gmail briefly, browser automation necessarily has access to the browser profile/cookies and could expose more (the documentation attempts to narrow scope, but code paths that open browsers or fall back to Safari via AppleScript could interact with user sessions). The skill also writes logs and a sqlite DB into the workspace and snapshot directory, which is documented.
Install Mechanism
There is no remote arbitrary download: the project builds locally via cargo and npm (fetching crates and npm packages from registries). SKILL.md includes shell install/run steps (scripts/run_backend.sh and run_frontend.sh) which are present in the repo. However, the registry summary above claimed 'No install spec / instruction-only', which conflicts with the SKILL.md's install entries — that's an inconsistency to be aware of.
Credentials
The skill requires an ANTHROPIC_API_KEY (used by backend's agent triage) and a himalaya Gmail config (IMAP credentials or keychain entry) for the Daily Email Scan. Those credentials are clearly relevant to the described features. However, the top-level registry metadata incorrectly listed 'Required env vars: none' and 'Required config paths: none', which is inconsistent with SKILL.md and the code. Requesting Gmail access and browser automation is sensitive but justified by the feature; users should treat these as high-privilege opt-in actions.
Persistence & Privilege
The skill does not set always:true. It writes local artifacts (backend/listings.db, html_snapshots, logs, and skill log files under ~/.openclaw/<WORKSPACE>/...) which is expected for a local tracking app. It spawns background tasks for triage but does not modify other skills or global agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install agent-zero
  3. After installation, invoke the skill by name or use /agent-zero
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.7
- Added requirement for ANTHROPIC_API_KEY environment variable, needed for backend automatic listing triage via the Claude API. - Updated prerequisites and credentials sections to mention Anthropic Claude integration and environment variable configuration. - Clarified backend workflow now depends on ANTHROPIC_API_KEY being present, with instructions to obtain and set it. - No workflow, API, or privacy changes.
v1.0.6
- Added new database migration: `0037_drop_notnull_triggers.sql`. - Updated project documentation (CLAUDE.md).
v1.0.5
Listing profile matching is now handled automatically by Claude — no manual profile selection needed when adding listings via agent-suggest.
v1.0.4
Declare missing binaries (cargo/node/npm/sqlite3), undeclared writes (listings.db, html_snapshots, tmp log), and install mechanism for Rust/TS backend
v0.1.0
- Removed 10 fixture HTML files from backend/src/parsers/fixtures to clean up sample data. - No changes to functionality or APIs; only file cleanup.
v1.0.3
Include Rust/frontend source; exclude build artifacts via .clawhubignore
v1.0.2
SKILL.md now co-located in GitHub repo (yzhong52/AgentZero)
v1.0.1
SKILL.md now co-located in GitHub repo (yzhong52/AgentZero)
v1.1.0
Declare required bins (himalaya, openclaw), local service deps, credentials config, privacy scope, and add Prerequisites section — addresses ClawHub review feedback
v1.0.0
Initial publish: personal real estate listing tracker — Redfin/REW email scanning, auto profile matching, daily cron workflow
Metadata
Slug agent-zero
Version 1.0.7
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 10
Frequently Asked Questions

What is AgentZero?

Interact with the AgentZero real estate listing tracker (local Rust/Axum backend at http://localhost:8000). Use when asked to add a property listing by URL,... It is an AI Agent Skill for Claude Code / OpenClaw, with 535 downloads so far.

How do I install AgentZero?

Run "/install agent-zero" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AgentZero free?

Yes, AgentZero is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AgentZero support?

AgentZero is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AgentZero?

It is built and maintained by Yuchen (@yzhong52); the current version is v1.0.7.

💬 Comments