← All skills
Tencent SkillHub Β· AI

Turnip Prophet

Predict Animal Crossing New Horizons turnip prices using the game's exact algorithm. Use when a user asks about turnip prices, ACNH turnips, stalk market, tu...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Predict Animal Crossing New Horizons turnip prices using the game's exact algorithm. Use when a user asks about turnip prices, ACNH turnips, stalk market, tu...

⬇ 0 downloads β˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, memory/turnip-week.json, scripts/cron_handler.sh, scripts/generate_chart.py, scripts/turnip_predict.py, test_turnip_predictor.py

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.2.4

Documentation

ClawHub primary doc Primary doc: SKILL.md 17 sections Open source page

Turnip Prophet - Animal Crossing Turnip Price Predictor

Predicts Animal Crossing: New Horizons turnip prices using the game's actual algorithm.

⚠️ IMPORTANT: Always Read Memory First!

Before doing ANYTHING, read the weekly data file: memory/turnip-week.json This contains the buy price, previous pattern, and all known prices for the current week. Do not ask the user for data you already have. Only ask for new/missing prices. When the user gives a new price, update memory/turnip-week.json immediately with the new value before running the prediction.

Weekly Data Format (memory/turnip-week.json)

{ "week_start": "2026-02-15", "buy_price": 96, "previous_pattern": 1, "prices": [84, 81, 78, null, null, null, null, null, null, null, null, null], "labels": ["Mon AM", "Mon PM", "Tue AM", "Tue PM", "Wed AM", "Wed PM", "Thu AM", "Thu PM", "Fri AM", "Fri PM", "Sat AM", "Sat PM"] } On Sundays, create a fresh file with the new buy price and reset prices to all nulls.

Triggers

Activate when user mentions: "turnip prices" or "turnip price" "ACNH turnips" or "Animal Crossing turnips" "stalk market" "turnip prophet" or "turnip prediction" "bell profit" with context of turnips Any question about when to sell turnips in Animal Crossing

Privacy & Data Storage

This skill stores local configuration data only on your machine in memory/turnip-config.json. No data is sent to external servers. What gets stored (if you enable reminders): Channel name (telegram/whatsapp/discord/signal) Your user ID on that channel OpenClaw binary path Setup timestamp Why: These values are needed so the cron reminders can send messages to the correct place without hard-coded values. Where: Stored locally in the skill's memory directory on your OpenClaw instance. Not shared, not uploaded, not visible to anyone else. How to disable/reset: rm ~/.openclaw/workspace/skills/turnip-prophet/memory/turnip-config.json Removing cron entries: # Edit crontab and remove the turnip-prophet lines crontab -e Important: You must explicitly confirm the setup flow before any config is saved. Declining the setup offer means nothing is stored.

Credentials & Permissions

The skill itself does not request or store any API keys or credentials. However, if you enable cron reminders, the installed cron jobs will: Use your local openclaw CLI binary Send messages using your existing OpenClaw configuration and credentials Operate with whatever permissions your OpenClaw instance has What this means: Automated reminders will be sent as you, using your OpenClaw identity The cron jobs require OpenClaw to be running and properly configured Messages are sent through your configured channels (Telegram/WhatsApp/etc.) using your bot tokens or API credentials You are granting permission for: Automated message sending on your behalf Using your existing messaging channel credentials Running scheduled tasks that invoke openclaw gateway call message.send If you're uncomfortable with automated messaging using your credentials, do not enable the cron reminders. The core prediction feature works fine without them.

Daily Reminders (Optional)

On first use, offer to set up daily reminders with an interactive flow:

Interactive Setup Flow (Agent Instructions)

On first trigger (when user asks about turnips for the first time): Check if already configured: test -f memory/turnip-config.json && echo "configured" || echo "not configured" If NOT configured, offer setup: "Want daily turnip reminders? I can ping you: β€’ Sunday 8am: Check Daisy Mae's price β€’ Mon-Sat noon + 8pm: Check Nook's prices β€’ Saturday 9:45pm: Final warning Reply 'yes' to set up, or 'no' to skip." If user says yes, auto-detect config: Channel: Extract from inbound context JSON "channel" field (telegram/whatsapp/discord/signal) Target ID: Extract from inbound context JSON "sender_id" field OpenClaw path: Run which openclaw or use /usr/local/bin/openclaw Skill dir: Use the absolute path to this skill's directory If auto-detection fails: Ask user for missing values explicitly Validate before proceeding Store config in memory/turnip-config.json: { "channel": "telegram", "target": "8577655544", "openclaw_bin": "/usr/local/bin/openclaw", "skill_dir": "/home/user/.openclaw/workspace/skills/turnip-prophet", "configured_at": "2026-02-23T10:30:00Z" } Generate and show cron entries: Show the user exactly what will be added, with their specific values. Example: # Turnip Prophet reminders for telegram:8577655544 0 8 * * 0 /usr/local/bin/openclaw gateway call message.send --params '{"channel":"telegram","target":"8577655544","message":"πŸ”” Sunday! Check Daisy Mae'\''s turnip price (90-110 bells) and buy your turnips πŸ₯¬"}' 2>&1 | logger -t turnip-prophet 0 12 * * 1-6 /usr/local/bin/openclaw gateway call message.send --params '{"channel":"telegram","target":"8577655544","message":"πŸ”” Time to check Nook'\''s Cranny turnip prices!"}' 2>&1 | logger -t turnip-prophet 0 20 * * 1-6 /usr/local/bin/openclaw gateway call message.send --params '{"channel":"telegram","target":"8577655544","message":"πŸ”” Evening price check: Check Nook'\''s Cranny!"}' 2>&1 | logger -t turnip-prophet 45 21 * * 6 /usr/local/bin/openclaw gateway call message.send --params '{"channel":"telegram","target":"8577655544","message":"⏰ FINAL CALL: Turnips expire at 10 PM! Sell now or they'\''ll rot πŸ—‘οΈ"}' 2>&1 | logger -t turnip-prophet Replace channel/target with detected values. Escape single quotes properly. Show user what will be stored (before confirmation): This will save: β€’ Channel: telegram β€’ User ID: 8577655544 β€’ Location: memory/turnip-config.json (local only) This data is stored locally on your machine and is needed so cron reminders can send messages to you. You can delete the config file anytime with: rm memory/turnip-config.json Continue? Reply 'confirm' to proceed, or 'cancel' to skip. On confirmation: Write config to memory/turnip-config.json Generate a safe install command and show it to the user: # Save the cron entries to a temp file cat > /tmp/turnip-cron-$$.txt <<'TURNIP_EOF' [generated entries] TURNIP_EOF # Review the file cat /tmp/turnip-cron-$$.txt # If it looks good, install: (crontab -l 2>/dev/null; cat /tmp/turnip-cron-$$.txt) | crontab - Ask user to run the commands and confirm when done Reply: "βœ… Reminders configured. You'll only get pings for missing data. Check crontab -l to verify installation. To remove: rm memory/turnip-config.json and remove the cron entries." On rejection/cancel: Reply: "No problem. No data was stored. You can set this up anytime by asking about turnip prices again."

Cron Handler (scripts/cron_handler.sh)

The cron script reads from memory/turnip-config.json for channel/target: CONFIG_FILE="$SKILL_DIR/memory/turnip-config.json" if [[ ! -f "$CONFIG_FILE" ]]; then echo "Config not found: $CONFIG_FILE" >&2 exit 1 fi CHANNEL=$(jq -r '.channel' "$CONFIG_FILE") TARGET=$(jq -r '.target' "$CONFIG_FILE") OPENCLAW_BIN=$(jq -r '.openclaw_bin' "$CONFIG_FILE") Event types: sunday-daisy: Check if memory/turnip-week.json has a buy_price for current week If missing: Send reminder "πŸ”” Sunday! Check Daisy Mae's turnip price (90-110 bells) and buy your turnips πŸ₯¬" If already set: Stay silent daily-check: Determine which price slot is currently active (Mon AM/PM through Sat PM) Check if that slot is filled in memory/turnip-week.json If missing: Send reminder "πŸ”” [Day] [AM/PM]: Check Nook's Cranny turnip prices!" If already filled: Stay silent saturday-final: Check how many prices are still null If any missing OR no buy_price: Send "⏰ FINAL CALL: Turnips expire at 10 PM! Sell now or they'll rot πŸ—‘οΈ" If all prices known: "⏰ Last chance to sell turnips tonight!" Send via: "$OPENCLAW_BIN" gateway call message.send --params "{\"channel\":\"$CHANNEL\",\"target\":\"$TARGET\",\"message\":\"...\"}"

How It Works

The skill uses a Python implementation of the actual ACNH turnip price algorithm to predict future prices based on: Your Sunday buy price (90-110 bells) Any known sell prices from this week Previous week's pattern (if known) There are 4 price patterns: Pattern 0 (Fluctuating): High-low-high-low-high waves Pattern 1 (Large Spike): Decreasing then massive spike (up to 6x) Pattern 2 (Decreasing): Consistently declining (bad week) Pattern 3 (Small Spike): Decreasing then moderate spike (up to 2x)

Usage Instructions

When triggered: Read memory/turnip-week.json β€” get all known data Update the file if the user provided a new price Run the prediction with all known data Generate a chart and send it with the prediction summary

Running the Prediction

echo '{"buy_price": 96, "prices": [84, 81, 78, null, null, null, null, null, null, null, null, null], "previous_pattern": 1}' | python3 scripts/turnip_predict.py prices array: [Mon AM, Mon PM, Tue AM, Tue PM, Wed AM, Wed PM, Thu AM, Thu PM, Fri AM, Fri PM, Sat AM, Sat PM] Use null for unknown prices

Generating the Chart

After running the prediction, generate a chart image: python3 scripts/generate_chart.py <buy_price> '<known_json>' '<mins_json>' '<maxs_json>' /tmp/turnip-chart.png buy_price: Sunday buy price (integer) known_json: array of 12 values, null for unknown (from memory/turnip-week.json prices) mins_json: array of 12 min values from the prediction output maxs_json: array of 12 max values from the prediction output All script paths are relative to the skill directory: skills/turnip-prophet/ Then send the chart image via the message tool with a caption containing the prediction summary. Always include the chart with every prediction update.

Presenting Results

Send the chart image via message tool, then reply with a conversational analysis. Don't be robotic β€” have a personality about it. Format: Chart image with brief caption (buy price, known prices) Text reply with: Pattern odds as a bullet list with emoji reactions (πŸ˜¬πŸ€žπŸš€πŸ’€ etc.) Brief colour commentary β€” what the data actually means in plain English "My take:" β€” a specific, opinionated recommendation for what to do next (which price to check, when to sell, when to hold) Example: Pattern odds: πŸ“‰ Decreasing: 84.7% 😬 πŸ“ˆ Large Spike: 15.1% 🀞 πŸ“Š Small Spike: 0.1% Not great. Three consecutive drops is strongly pointing to a decreasing week. But there's still a 15% chance of a large spike hiding β€” if it happens, it'd be Wed-Fri with prices up to 576 bells. My take: Check the Tuesday PM price. If it drops again, this week is almost certainly a bust β€” sell and cut your losses. If it jumps up, the spike is on. 🎰 Be direct, be opinionated, skip patterns with 0% probability.

Pattern Descriptions for Users

Fluctuating (0): Prices go up and down in waves β€” sell when above 120-130 Large Spike (1): Prices drop then SPIKE huge (400-600 bells) β€” wait for it! Decreasing (2): Prices keep falling all week β€” sell ASAP to cut losses Small Spike (3): Prices drop then small bump (150-200) β€” sell during the bump

Error Handling

If the script fails or returns an error: Explain what went wrong in simple terms Ask user to double-check their input data Suggest they try again with corrected information

Notes

Predictions are probabilistic, not guaranteed The algorithm matches the actual game code More known prices = better predictions Sunday buy price is required Previous week's pattern helps but isn't required

Category context

Agent frameworks, memory systems, reasoning layers, and model-native orchestration.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
4 Scripts1 Docs1 Config
  • SKILL.md Primary doc
  • scripts/cron_handler.sh Scripts
  • scripts/generate_chart.py Scripts
  • scripts/turnip_predict.py Scripts
  • test_turnip_predictor.py Scripts
  • memory/turnip-week.json Config