SQL Database Support for pREST
prest/prest
Guides classifying, gap-analyzing and scaffolding support for a new SQL database in pREST, from Postgres-compatible variants to entirely new dialects.
Changes marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers.
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Cod-e-Codes/marchat database-marchat --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/database-marchat .claude/skills/database-marchat && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .claude/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchatType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Cod-e-Codes/marchat database-marchat --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/database-marchat .agents/skills/database-marchat && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .agents/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Cod-e-Codes/marchat database-marchat --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/database-marchat .cursor/skills/database-marchat && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .cursor/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Cod-e-Codes/marchat.git --path .cursor/skills/database-marchat--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Cod-e-Codes/marchat database-marchat --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/database-marchat .gemini/skills/database-marchat && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .gemini/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Cod-e-Codes/marchat database-marchatInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/database-marchat .github/skills/database-marchat && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .github/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cod-e-Codes/marchat --skill database-marchat -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Cod-e-Codes/marchat database-marchat --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cod-e-Codes/marchat.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/database-marchat .opencode/skills/database-marchat && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "database-marchat" agent skill from https://github.com/Cod-e-Codes/marchat/tree/main/.cursor/skills/database-marchat into .opencode/skills/database-marchat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database-marchat", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
database-marchatChanges marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers.
Database Marchat is an agent skill from Cod-e-Codes/marchat. Changes marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers. Use when editing server/db.go, dbdialect.go, schema migrations, MARCHATDBPATH, or multi-database behavior.
Its SKILL.md is about 990 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering Database migrations and SQL. It works with MySQL, PostgreSQL, SQLite and SQL. The repository describes itself as: Terminal chat for developers: Go WebSocket server + Bubble Tea TUI client, optional E2E, reactions, DMs, channels, plugins, files, code snippets, admin UI. Backends: SQLite… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3440f09. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Database Marchat loads about 985 tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 419 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Cod-e-Codes/marchat at commit 3440f09, republished under its MIT licence (© Cod-e-Codes). 419 words, ~985 tokens.
.claude/skills/database-marchat/SKILL.md (or your agent's skills folder).Runtime backend via MARCHAT_DB_PATH: SQLite (default), PostgreSQL, or MySQL. Detection and DSN parsing: server/db_dialect.go, InitDB in server/db.go.
db_dialect.go helpers).InitDB only):_busy_timeout=5000, _journal_mode=WAL, _synchronous=NORMAL, _txlock=immediate on the writer, plus _pragma for cache/temp). Join with ? or & if the path already has a query (appendSQLiteDSNPragmas).Ping, set writer SetMaxOpenConns(1) and SetMaxIdleConns(1). For file-backed SQLite, open a sibling reader pool (MaxOpenConns(4), _query_only=1, same busy_timeout; no _journal_mode, no mode=ro, no cache=shared). Route SELECTs through dbRead(db). Close with CloseDB. Do not leave the default unbounded database/sql pool on the writer.:memory: (each connection is a different database).Exec("PRAGMA ...") after open for settings that must stick on every connection (that was the #118 SQLITE_BUSY failure mode).busy_timeout > 0; for file-backed DBs, journal_mode is wal. In-memory (:memory: / mode=memory) requires busy_timeout only.VACUUM INTO and similar.MaxOpenConns(1)).mysql: or mysql://; mysql.Config with parseTime=true; indexed text rules for search.= 0 / = 1.Include messages plus durable state: reactions, read receipts, user_message_state, channel preferences. Not message rows alone.
| Level | Where |
|---|---|
| Unit / integration | In-memory or temp SQLite in server/*_test.go (db_test.go covers DSN join, file WAL, :memory:, concurrent inserts) |
| CI smoke | server/db_ci_smoke_test.go with MARCHAT_CI_POSTGRES_URL, MARCHAT_CI_MYSQL_URL (also asserts pool is not forced to 1) |
| Handlers | Visible replay SQL (GetRecentMessagesForUser), search, pin toggle |
Locally, CI smoke tests skip without env vars. See testing-marchat skill.
server/migrate.go (applyMigrationV2, etc.) and bump currentSchemaVersion; extend verifySchema when new required tables or columns ship. Prefer deterministic DDL for versions after the v1 baseline (avoid inspect-and-reconcile).MigrateSchema runs ordered migrations, records schema_version, and verifies required tables (including ban_history.expires_at). SQLite/Postgres wrap each version in a transaction; MySQL cannot (DDL implicit commit) - document that when changing migrator behavior. CreateSchema in the same file is a thin log.Fatal wrapper for tests.db_dialect_test.go for new SQL fragments.go test ./server/....ARCHITECTURE.md / CHANGELOG.md if user-visible.In-process :backup supports SQLite only. Postgres and MySQL require native backup tools; BackupDatabase returns an error when dialect is not SQLite.
ARCHITECTURE.md database sectioninternal/doctor DB probes for -doctor output© Cod-e-Codes, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .cursor/skills/database-marchat of Cod-e-Codes/marchat.
Open the folder on GitHubat commit 3440f09
Database Marchat next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Database Marchat this skillCod-e-Codes/marchat | 137 | — | ~985 | Automated safety check: Pass | MIT | |
| SQL Database Support for pRESTprest/prest | 4.6k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Squixeduardofuncao/squix | 273 | — | ~784 | Automated safety check: Pass | MIT | |
| Golang Databaseunxed/f4 | 240 | 2 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Database Migrations SQL Migrationsrmyndharis/antigravity-skills | 1.7k | 2 repos | ~577 | Automated safety check: Notes | MIT | |
| Database MigrationRain-kl/OpenFlare | 288 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
prest/prest
Guides classifying, gap-analyzing and scaffolding support for a new SQL database in pREST, from Postgres-compatible variants to entirely new dialects.
eduardofuncao/squix
Run SQL queries across databases (Postgres, MySQL, SQLite, etc.) via the squix CLI.
unxed/f4
Comprehensive guide for Go database access — parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context…
rmyndharis/antigravity-skills
SQL database migrations with zero-downtime strategies for PostgreSQL, MySQL, SQL Server
Rain-kl/OpenFlare
Wavelet 项目专用:当新增或修改数据库表结构、索引、初始化数据、系统配置 seed、模板 seed、默认管理员、goose SQL 迁移、internal/infra/persistence/migrator、ClickHouse 分析库 DDL 或数据库升级流程时必须使用。本技能指导在 internal/infra/persistence/migrator/goose 下编写…
iii-hq/workers
Run SQL against PostgreSQL, MySQL, or SQLite from the iii engine — reads, writes, transactions, and prepared statements over managed connection pools.
Cod-e-Codes/marchat
Diagnoses marchat client and server issues using -doctor, env configuration, and logs.
Cod-e-Codes/marchat
Implements and refactors marchat Go code with project toolchain and quality gates.
Cod-e-Codes/marchat
Drafts conventional commit messages and pull request bodies for marchat without committing or pushing unless explicitly requested.
Cod-e-Codes/marchat
Writes and runs marchat tests with race detection, coverage, and dialect smoke patterns.
Cod-e-Codes/marchat
Implements marchat terminal client TUI, commands, keystore, and WebSocket client behavior.
Cod-e-Codes/marchat
Develops and maintains marchat plugins: SDK, host IPC, manager install path, store downloads, and Ed25519 licenses.
Works with
Categories
Changes marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers. Database Marchat is an agent skill from Cod-e-Codes/marchat. Changes marchat SQL schema and queries across SQLite, PostgreSQL, and MySQL using dialect helpers.
Database Marchat fits situations like: editing server/db.go; schema migrations; multi-database behavior.
Run `npx skills add Cod-e-Codes/marchat --skill database-marchat -a claude-code`. Or copy the skill folder (.cursor/skills/database-marchat in Cod-e-Codes/marchat) into .claude/skills/database-marchat in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Cod-e-Codes/marchat --skill database-marchat -a codex`. Or copy the skill folder (.cursor/skills/database-marchat in Cod-e-Codes/marchat) into .agents/skills/database-marchat in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Cod-e-Codes/marchat --skill database-marchat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/database-marchat, .gemini/skills/database-marchat, .github/skills/database-marchat and .opencode/skills/database-marchat in your project.
Going by SKILL.md and its folder, Database Marchat needs the command-line tools its instructions call (go).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Database Marchat is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 985 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Database Marchat: SQL Database Support for pREST (prest/prest, 4.6k stars), Squix (eduardofuncao/squix, 273 stars), Golang Database (unxed/f4, 240 stars) and Database Migrations SQL Migrations (rmyndharis/antigravity-skills, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Cod-e-Codes (a GitHub user) maintains it in Cod-e-Codes/marchat, which has 137 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 3, 2026.
Source: Cod-e-Codes/marchat on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.