← 返回 Skills 市场
kappa90

Dinobase

作者 Emanuele Capparelli · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
109
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install dinobase
功能描述
Set up and query business data across 100+ sources (Stripe, HubSpot, Salesforce, etc.) via SQL. Agent-driven setup, cross-source joins, mutations.
使用说明 (SKILL.md)

Dinobase

Dinobase is an agent-first database. It syncs data from 100+ SaaS APIs, databases, and files into a SQL database (DuckDB). You query across all sources with standard SQL.

When to use

  • Setting up data connections for a user (first time or adding new sources)
  • Answering questions that span multiple business tools (CRM + billing + support)
  • Querying synced business data via SQL (Stripe, HubSpot, Salesforce, GitHub, etc.)
  • Cross-source joins and aggregations (e.g., customers with overdue invoices AND open tickets)
  • Writing data back to sources (UPDATE/INSERT with preview + confirm)

When NOT to use

  • Real-time API calls to a single service (use the service's API directly)
  • File system operations or general shell tasks
  • Data that hasn't been added to Dinobase yet (check with dinobase status first)

Setup (agent-driven)

You can fully set up Dinobase for the user. The local setup works out of the box — no account required.

Step 1: Check existing state

dinobase whoami

If the user is already logged in to Dinobase Cloud, skip to Step 3. If not logged in, proceed with local setup below.

Step 2: Set up locally

dinobase init

This initializes a local Dinobase database. Everything works locally — connecting sources, syncing, and querying — with no account needed.

Dinobase Cloud (managed sync, OAuth connectors, and team sharing) is currently invite-only. Invite the user to join the waitlist at https://dinobase.ai to get early access when it opens up.

Step 3: Discover what the user needs

Ask the user what tools and data sources they use. Then check what's available:

dinobase sources --available

This returns JSON with full metadata per source:

[
  {
    "name": "stripe",
    "description": "Stripe payments (customers, subscriptions, charges, invoices)",
    "supports_oauth": false,
    "credential_help": "Stripe Dashboard > Developers > API keys (use the Secret key)",
    "credentials": [{"name": "stripe_secret_key", "cli_flag": "--api-key", ...}]
  },
  {
    "name": "hubspot",
    "description": "HubSpot CRM (contacts, companies, deals, tickets)",
    "supports_oauth": true,
    "credential_help": "HubSpot > Settings > Integrations > Private Apps > create app > copy token",
    "credentials": [{"name": "api_key", "cli_flag": "--api-key", ...}]
  }
]

Step 4: Connect sources

For each source the user wants, use the API key method (OAuth requires a Dinobase Cloud account):

API key:

  1. Check credential_help from the sources list
  2. Tell the user where to find the key
  3. Run:
dinobase add \x3Csource_type> --\x3Ccli_flag> \x3Cvalue>

Example:

dinobase add stripe --api-key sk_live_...

OAuth (requires Dinobase Cloud account):

If the user has a Cloud account, OAuth is available:

dinobase auth \x3Csource_type> --headless

Prints JSON:

{"status": "waiting", "auth_url": "https://...", "message": "Open this URL to connect hubspot"}

Present the auth_url to the user: "Open this URL to connect your HubSpot account: \x3Curl>"

Wait for the command to complete. It prints:

{"status": "connected", "source": "hubspot", "type": "hubspot"}

Step 5: Sync data

dinobase sync

In cloud mode this triggers server-side sync and returns immediately. In local mode it runs the sync directly. Check status:

dinobase status

Step 6: Verify

dinobase info

Confirm that sources appear with non-zero table and row counts.

Dinobase Cloud (invite-only)

Dinobase Cloud adds managed sync, OAuth connectors, and team sharing on top of local mode. It is currently invite-only. To get early access, join the waitlist at https://dinobase.ai.

Once a user has a Cloud account they can sign in with:

dinobase login --headless

This prints JSON to stdout:

{"status": "waiting", "login_url": "https://...", "message": "Open this URL to sign in to Dinobase Cloud"}

Present the login_url to the user: "Open this URL to sign in to your Dinobase Cloud account: \x3Curl>"

The command blocks until the user completes sign-in. When done, it prints:

{"status": "connected", "email": "[email protected]", "storage_url": "s3://..."}

Workflow (querying data)

Always follow this sequence when answering data questions:

  1. Run dinobase info to see what sources and tables exist
  2. Run dinobase describe \x3Cschema>.\x3Ctable> on relevant tables to see columns, types, and sample data
  3. Write SQL and run it with dinobase query "\x3Csql>"
  4. If the query returns a mutation preview, ask the user before running dinobase confirm \x3Cmutation_id>

Commands

All commands output JSON by default (machine-readable). Add --pretty for human-readable output.

Account

dinobase login              # sign in to Dinobase Cloud (opens browser)
dinobase login --headless   # agent-friendly: prints login URL as JSON
dinobase logout             # sign out
dinobase whoami             # show current account info

Connect sources

dinobase sources --available                # list all 100+ source types with auth info
dinobase auth hubspot --headless            # OAuth connect (requires Cloud account)
dinobase add stripe --api-key sk_test_...   # API key connect (works locally)

Discover data

dinobase info                       # overview of all sources, tables, freshness
dinobase status                     # source status with freshness indicators
dinobase describe stripe.customers  # table schema: columns, types, sample rows

Query data

# Run SQL (DuckDB dialect). Tables are schema.table
dinobase query "SELECT c.email, s.status FROM stripe.customers c JOIN stripe.subscriptions s ON c.id = s.customer_id WHERE s.status = 'past_due'"

# Limit rows returned (default 200, max 10000)
dinobase query "SELECT * FROM hubspot.contacts" --max-rows 500

Cross-source queries

Join across sources using shared columns (email, company name, IDs):

dinobase query "
SELECT c.email, c.name, i.amount_due, t.subject as ticket_subject
FROM stripe.customers c
JOIN stripe.invoices i ON c.id = i.customer_id
JOIN zendesk.tickets t ON c.email = t.requester_email
WHERE i.status = 'past_due' AND t.status = 'open'
"

Mutations (write-back)

UPDATE and INSERT queries return a preview first. Nothing executes until confirmed.

# Step 1: Query returns preview with mutation_id
dinobase query "UPDATE hubspot.contacts SET lifecycle_stage = 'customer' WHERE email = '[email protected]'"

# Step 2: Confirm to execute (writes back to API + updates data)
dinobase confirm \x3Cmutation_id>

# Or cancel
dinobase cancel \x3Cmutation_id>

Keep data fresh

dinobase refresh stripe      # re-sync a specific source
dinobase refresh --stale     # re-sync only stale sources
dinobase sync                # sync all sources

Tips

  • Tables are always referenced as schema.table (e.g., stripe.customers, hubspot.contacts)
  • Use describe before writing queries to find correct column names and types
  • DuckDB SQL dialect: supports ILIKE, LIST, STRUCT, regexp_matches(), date functions
  • JSON output is default; only use --pretty when showing results directly to the user
  • If data seems stale, check dinobase status for freshness info and run dinobase refresh \x3Csource>
  • Cross-source joins work via shared columns — use describe on both tables to find join keys
  • For new users: start with dinobase init and API key auth. Dinobase Cloud (OAuth, managed sync) is invite-only — send users to https://dinobase.ai to join the waitlist
安全使用建议
This skill appears to be what it says: an agent wrapper for the Dinobase CLI. Before installing: (1) verify the installer source — confirm 'uv' package maps to the official dinobase release (check https://dinobase.ai or the vendor's documented install instructions); (2) prefer local-mode if you want data kept on-device and avoid sending secrets to cloud services; (3) never paste API keys into public chat — the agent will prompt you to provide keys or open OAuth URLs; (4) the agent can run the CLI autonomously by default, so if you want to limit risk run it interactively or restrict autonomous invocation for this skill. If you need more assurance about the installer, ask the skill publisher for a canonical download URL or a signed release artifact.
功能分析
Type: OpenClaw Skill Name: dinobase Version: 1.0.0 The 'dinobase' skill bundle provides instructions for an AI agent to interact with the Dinobase CLI, a tool designed to aggregate and query business data from over 100 SaaS sources (e.g., Stripe, HubSpot) via SQL. The instructions in SKILL.md are well-structured and transparent, explicitly directing the agent to guide the user through sensitive steps such as API key entry and requiring user confirmation for data mutations. While the skill handles high-risk data and credentials, these actions are strictly aligned with its stated purpose and include safety-oriented features like headless OAuth flows and mutation previews, with no evidence of malicious intent or exfiltration logic.
能力评估
Purpose & Capability
Name/description describe a CLI that syncs and queries many SaaS sources; the skill requires a 'dinobase' binary and the SKILL.md exclusively documents dinobase CLI usage. Requested binaries and CLI flags align with the stated purpose.
Instruction Scope
SKILL.md instructs the agent only to run the dinobase CLI commands (init, whoami, add, auth --headless, sync, query, etc.), present auth/login URLs to the user, and ask for confirmation before mutations. It does not direct reading unrelated files or environment secrets beyond the user-supplied API keys needed to connect sources.
Install Mechanism
Install uses an 'uv' package entry (package: dinobase) that will create a 'dinobase' binary. 'uv' is not a widely-known public installer in this report, so verify the installer source and package provenance (official release page on dinobase.ai or a trusted registry) before installing.
Credentials
The skill declares no environment variables or credentials. Runtime use does involve user-provided service credentials (Stripe keys, HubSpot tokens, etc.), which is expected for this connector. There are no unexplained or unrelated credential requests in the instructions.
Persistence & Privilege
The skill is not always-enabled and does not request special system-wide privileges. It expects a local CLI binary to be installed and invoked; autonomous invocation is allowed by default (normal for skills), but no additional persistent configuration or cross-skill modification is requested.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install dinobase
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /dinobase 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial public release of dinobase. - Set up and query business data from 100+ sources (Stripe, HubSpot, Salesforce, etc.) via SQL. - Fully agent-driven setup: initialize locally, connect sources, sync and query—all via simple CLI steps. - Supports cross-source joins and aggregations using shared columns across services. - Write data back to sources with safe preview/confirm workflow for UPDATE and INSERT statements. - Dinobase Cloud adds managed sync, OAuth connectors, and team sharing (invite-only for now). - All commands output JSON for easy automation; --pretty flag provides human-readable output when needed.
元数据
Slug dinobase
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Dinobase 是什么?

Set up and query business data across 100+ sources (Stripe, HubSpot, Salesforce, etc.) via SQL. Agent-driven setup, cross-source joins, mutations. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 109 次。

如何安装 Dinobase?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install dinobase」即可一键安装,无需额外配置。

Dinobase 是免费的吗?

是的,Dinobase 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Dinobase 支持哪些平台?

Dinobase 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Dinobase?

由 Emanuele Capparelli(@kappa90)开发并维护,当前版本 v1.0.0。

💬 留言讨论