{"adoption": {"forks": 370, "observed_at": "2026-08-28T04:09:22.356589+00:00", "stars": 5559}, "canonical_url": "https://ross.abutalabs.com/products/tablepro", "card": {"archived": false, "artifact_type": "application", "description": "Free and open source database client built natively for developers", "domain": ["databases", "developer-tools", "desktop-applications", "operating-systems", "apple-ecosystem"], "enriched": true, "function": ["database", "database-driver", "gui", "llm-inference", "mcp", "chatbot", "ssh", "data-visualization"], "health_score": 100, "homepage": "https://tablepro.app", "language": "Swift", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["TableProApp/TablePro"], "name": "TableProApp/TablePro", "platform": [], "pushed_at": "2026-08-26T18:20:40+00:00", "repo": "TableProApp/TablePro", "stars": 5559, "tags": ["database-client", "sql-editor", "database-gui", "native-app", "tableplus-alternative", "multi-database", "data-grid", "ai-assistant", "open-source", "macos", "ios", "desktop", "swift"], "topics": ["appkit", "database", "database-client", "macos", "macos-app", "mysql", "native", "postgresql", "sql", "sqlite", "swift", "swiftui", "tableplus", "mongodb", "mssql", "redis", "database-gui", "database-management", "mysql-client", "sql-editor"], "urls": [], "use_cases": ["manage mysql and postgresql databases from a native mac app", "free open source alternative to tableplus", "query sqlite and mongodb with a fast native gui", "connect to databases over ssh tunnel", "import connections from dbeaver or sequel ace", "chat with an ai assistant about my database schema", "let cursor or claude desktop query my database via mcp", "browse and edit redis keys on mac"], "what_it_is": "TablePro is a free, open-source, native macOS (and iOS/iPadOS) database client supporting 29 SQL and NoSQL engines through native drivers, with a SQL editor, data grid, SSH tunnels, ER diagrams, and a built-in AI assistant with an MCP server. It is built with Swift/AppKit/SwiftUI (no Electron or JDBC), starts in under a second, and is licensed under AGPLv3 with optional paid licenses for premium features.", "when_to_avoid": ["you need a Windows or fully stable Linux client - TablePro has no Windows build and Linux is only a prototype", "you need cross-platform consistency across Windows, Linux, and macOS - DBeaver or Beekeeper Studio fit better", "you rely on paid-tier features like iCloud sync, query insights, or team sharing without buying a license", "you need a scriptable headless database tool rather than a GUI application"], "when_to_choose": ["you want a native, fast, multi-database client on macOS or iOS without Electron or JVM overhead", "you prefer open source (AGPLv3) over proprietary tools like TablePlus or Navicat", "you need broad engine support including MySQL, PostgreSQL, SQLite, MongoDB, Redis, ClickHouse, and cloud warehouses", "you want built-in AI assistance with strict read-only safety gates and an MCP server"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tablepro", "repo": "TableProApp/TablePro", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.356589+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:55:38.518506+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b7290c41c53c559f82ba6e473422f45d6690c78dbee90991b35a1ee42897b5e", "fetched_at": "2026-08-28T04:09:22.356589+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TableProApp/TablePro"}, {"content_hash": "4e9b738bbf8c6664814ea006f989559f2f3e4ebba6e208595e7724ff27d0aa08", "fetched_at": "2026-08-29T08:50:54.065498+00:00", "kind": "homepage", "missing": false, "url": "https://tablepro.app"}, {"content_hash": "737f456754a551b96609d1cd16c35d4ea8a6ff5252415cfc16085e3ffa9ce03a", "fetched_at": "2026-08-29T08:50:54.074877+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app"}, {"content_hash": "67f1f0d4ca7cdfb6ad58749cb00bd5c6df3961337d8a92ddb294848e2bf48232", "fetched_at": "2026-08-29T08:50:54.078884+00:00", "kind": "site_page", "missing": false, "url": "https://docs.tablepro.app/changelog"}, {"content_hash": "8bd294f465024f342d666a4d481ad5ef44b866951702360128342e7837457b8d", "fetched_at": "2026-08-29T08:50:54.076806+00:00", "kind": "site_page", "missing": false, "url": "https://tablepro.app/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 18, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 260, "days_push": 7, "days_rel": 8, "gap_med": 0.0, "n_releases_24m": 507}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}