# tinkerer-data > Query the tinkerer.club Discord community data. Search messages, explore conversations, view threads, track user activity, and get channel statistics. Use when the user asks about tinkerer.club Discord data, community activity, or conversation history. - Author: Michael Kirsanov - Repository: tinkererclub/tinkerer-data-skill - Version: 20260209180159 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-10 - Source: https://github.com/tinkererclub/tinkerer-data-skill - Web: https://mule.run/skillshub/@@tinkererclub/tinkerer-data-skill~tinkerer-data:20260209180159 --- --- name: tinkerer-data description: >- Query the tinkerer.club Discord community data. Search messages, explore conversations, view threads, track user activity, and get channel statistics. Use when the user asks about tinkerer.club Discord data, community activity, or conversation history. license: MIT compatibility: Python 3.8+, psycopg[binary] metadata: author: lofimichael version: "1.0" tags: discord,community,data,search,postgres allowed-tools: Bash(python3:*) Read --- # tinkerer.club Data Query the tinkerer.club Discord community database. Seven read-only RPC functions covering search, context expansion, threads, user activity, contributor rankings, and channel statistics. ## Setup Set your connection string. tinkerer.club users get one via `/db register` in Discord, but any standard Postgres 15+ URL works. ```bash export TINKERER_DATA_URL="postgresql://user:password@host:5432/postgres" ``` Or configure in `~/.openclaw/openclaw.json`: ```json { "skills": { "entries": { "tinkerer-data": { "env": { "TINKERER_DATA_URL": "postgresql://user:password@host:5432/postgres" } } } } } ``` Install the dependency: ```bash pip3 install 'psycopg[binary]' ``` Verify: ```bash python3 {baseDir}/scripts/tinkerer-data.py test ``` ## Commands ### Search Messages Full-text search across all community messages with relevance ranking. Supports quoted phrases, `OR`, and `-negation`. ```bash python3 {baseDir}/scripts/tinkerer-data.py search "raspberry pi" python3 {baseDir}/scripts/tinkerer-data.py search "3d printing" --channel builds --limit 10 python3 {baseDir}/scripts/tinkerer-data.py search "soldering tips" --after 2025-01-01 ``` ### Expand Context Get surrounding messages (by count) around a specific message. Stays within the same channel/thread. ```bash python3 {baseDir}/scripts/tinkerer-data.py expand python3 {baseDir}/scripts/tinkerer-data.py expand --before 20 --after 20 ``` ### Conversation Context Get messages within a 2-hour time window around a target message. ```bash python3 {baseDir}/scripts/tinkerer-data.py conversation python3 {baseDir}/scripts/tinkerer-data.py conversation --window 100 ``` ### Thread Context Retrieve all messages in a Discord thread. ```bash python3 {baseDir}/scripts/tinkerer-data.py thread python3 {baseDir}/scripts/tinkerer-data.py thread --limit 500 ``` ### User Activity Per-channel message breakdown for a specific user. ```bash python3 {baseDir}/scripts/tinkerer-data.py user python3 {baseDir}/scripts/tinkerer-data.py user --since 2025-01-01 ``` ### Top Contributors Community leaderboard by message count (excludes bots). ```bash python3 {baseDir}/scripts/tinkerer-data.py top python3 {baseDir}/scripts/tinkerer-data.py top --limit 50 --since 2025-06-01 ``` ### Channel Stats Per-channel statistics: message counts, unique authors, date ranges. ```bash python3 {baseDir}/scripts/tinkerer-data.py channels python3 {baseDir}/scripts/tinkerer-data.py channels --since 2025-01-01 ``` ## Output Format All commands return JSON on stdout: ```json {"ok": true, "rows": [...], "count": 5} ``` On error: ```json {"ok": false, "error": "connection refused"} ``` ## Typical Workflows **Find a conversation about a topic:** 1. `search "topic"` -- find relevant messages 2. Pick a message ID from results 3. `expand ` or `conversation ` -- see surrounding context **Explore a thread:** 1. Find a message via `search` 2. `thread ` -- get full thread **Community overview:** 1. `channels --since 2025-01-01` -- active channels 2. `top --since 2025-01-01` -- most active members ## Reference - [RPC Function Schemas]({baseDir}/references/rpc-functions.md) -- full parameter and return type docs - [Access Model]({baseDir}/references/access-model.md) -- how credentials work - [Extended Examples]({baseDir}/references/examples.md) -- workflows and search tips