{"id":47888054,"url":"https://github.com/emanuele-em/cove","last_synced_at":"2026-05-02T12:06:35.158Z","repository":{"id":345038839,"uuid":"1182449346","full_name":"emanuele-em/cove","owner":"emanuele-em","description":"An extensible, multi-database GUI client for macOS — add any database by implementing a single Swift protocol. Built for contributors.","archived":false,"fork":false,"pushed_at":"2026-05-02T10:12:15.000Z","size":45993,"stargazers_count":168,"open_issues_count":2,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-02T11:22:30.147Z","etag":null,"topics":["contributions-welcome","database","extensible","gui","hacktoberfest","macos","open-source","swift","swiftui"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emanuele-em.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-15T14:39:53.000Z","updated_at":"2026-05-02T10:11:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/emanuele-em/cove","commit_stats":null,"previous_names":["emanuele-em/cove"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/emanuele-em/cove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emanuele-em%2Fcove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emanuele-em%2Fcove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emanuele-em%2Fcove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emanuele-em%2Fcove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emanuele-em","download_url":"https://codeload.github.com/emanuele-em/cove/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emanuele-em%2Fcove/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32533381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T11:28:32.350Z","status":"ssl_error","status_checked_at":"2026-05-02T11:27:30.140Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contributions-welcome","database","extensible","gui","hacktoberfest","macos","open-source","swift","swiftui"],"created_at":"2026-04-04T02:23:44.902Z","updated_at":"2026-05-02T12:06:35.133Z","avatar_url":"https://github.com/emanuele-em.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cove\n\n[![Build](https://github.com/emanuele-em/cove/actions/workflows/build.yml/badge.svg)](https://github.com/emanuele-em/cove/actions/workflows/build.yml)\n[![Download](https://img.shields.io/github/v/release/emanuele-em/cove?label=Download\u0026style=flat)](https://github.com/emanuele-em/cove/releases/latest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![macOS 15+](https://img.shields.io/badge/macOS-15%2B-000000.svg?logo=apple)](https://developer.apple.com/macos/)\n[![Swift 6](https://img.shields.io/badge/Swift-6-F05138.svg?logo=swift\u0026logoColor=white)](https://swift.org)\n\nA native macOS database client. Fast, lightweight, extensible.\n\n![Cove demo](docs/hero.gif)\n\n### Supported databases\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/postgres-logo.imageset/postgres-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003ePostgreSQL\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/mysql-logo.imageset/mysql-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eMySQL\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/mariadb-logo.imageset/mariadb-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eMariaDB\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/sqlite-logo.imageset/sqlite-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eSQLite\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/mongodb-logo.imageset/mongodb-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eMongoDB\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/redis-logo.imageset/redis-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eRedis\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/scylladb-logo.imageset/scylladb-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eScyllaDB\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/cassandra-logo.imageset/cassandra-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eCassandra\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/elasticsearch-logo.imageset/elasticsearch-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eElasticsearch\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/oracle-logo.imageset/oracle-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eOracle\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/sqlserver-logo.imageset/sqlserver-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eSQL Server\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/clickhouse-logo.imageset/clickhouse-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eClickHouse\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/emanuele-em/cove/refs/heads/main/Cove/Assets.xcassets/duckdb-logo.imageset/duckdb-logo.png\" width=\"40\"\u003e\u003cbr\u003e\u003cb\u003eDuckDB\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nAdding a new backend requires zero changes to UI code — see [`DB/README.md`](Cove/DB/README.md).\n\n## Features\n\n- **Browse** schemas, tables, views, indexes, and keys in a sidebar tree\n- **Edit rows** inline with SQL/CQL preview before commit\n- **Run queries** with syntax highlighting and autocomplete\n- **Agent Mode** — generate or edit queries with Claude Code or Codex CLI\n- **Multiple tabs** with independent connections (Cmd+T)\n- **Connection environments** — local, dev, staging, production\n- **SSH tunneling** — password or private key authentication\n- **SQLite over SSH** — browse and query a VPS-hosted SQLite file from the same SQLite connection flow\n- **Session persistence** — connections and tabs restore across app relaunches\n- **Color-coded indicators** and connection tooltips\n- Native macOS UI — no Electron, no web views\n\n## Agent Mode\n\nAgent Mode can create a new query or edit the current query block using a local agent CLI.\n\n\u003cimg width=\"1068\" height=\"316\" alt=\"image\" src=\"https://github.com/user-attachments/assets/eb78ed0f-c6ee-4293-888c-78f7c55f3072\" /\u003e\n\n\n- Hover a selected query block or an empty editor line, then click **agent mode**\n- Press **Cmd+K** to open Agent Mode at the cursor\n- Press **Cmd+Return** from the Agent Mode prompt to generate\n- Press **Esc** or the close button to close Agent Mode\n\nCove currently supports:\n\n- **Claude Code** via the `claude` CLI\n- **Codex CLI** via the `codex` CLI\n\nThe selected agent receives the current query block, the active backend and database metadata, the loaded browser tree, and completion schema context. Cove does not send database passwords to the agent prompt.\n\nAgent processes run locally from Cove's Application Support workspace. macOS may still show a Documents folder permission prompt if the underlying CLI tries to access a protected folder, especially when developing or launching Cove from a repository inside `~/Documents`.\n\n## Install\n\nDownload the latest `.dmg` from [Releases](https://github.com/emanuele-em/cove/releases/latest).\n\n\u003e On first launch, macOS may block the app. Right-click the app and select **Open** to bypass Gatekeeper.\n\nOr build from source:\n\n```bash\n# One-time Xcode setup, if needed\nxcodebuild -runFirstLaunch\n\nxcodebuild -scheme Cove -derivedDataPath .build build\nopen .build/Build/Products/Debug/Cove.app\n```\n\nIf `xcodebuild` fails because Xcode has not completed setup on your machine, run `xcodebuild -runFirstLaunch` once and retry.\n\nRequires macOS 15+.\n\n## Roadmap\n\nContributions welcome:\n\n- Import/export (CSV, JSON, SQL)\n- Data filtering and search\n- Query history panel\n- SSL/TLS certificate configuration UI\n- Query explain/analyze visualization\n- Homebrew cask\n\n## Community\n\n- [Bug reports](https://github.com/emanuele-em/cove/issues/new?template=bug_report.md)\n- [Feature requests](https://github.com/emanuele-em/cove/issues/new?template=feature_request.md)\n- [Contributing guide](CONTRIBUTING.md)\n- [Security policy](SECURITY.md)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femanuele-em%2Fcove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femanuele-em%2Fcove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femanuele-em%2Fcove/lists"}