Rust Heavy Performance
veloxbase/veloxdb
Enforces a Rust-first approach for heavy work in VeloxDB so expensive compute stays in Tauri/Rust instead of JavaScript.
Migrate a TinyBase table to SQLite. An agent skill from fastrepl/anarlog.
$ npx skills add fastrepl/anarlog --skill migrate-to-sqlite -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fastrepl/anarlog migrate-to-sqlite --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/fastrepl/anarlog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .claude/skills/migrate-to-sqlite && 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 "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .claude/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqliteType 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 fastrepl/anarlog --skill migrate-to-sqlite -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fastrepl/anarlog migrate-to-sqlite --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .agents/skills/migrate-to-sqlite && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .agents/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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 fastrepl/anarlog --skill migrate-to-sqlite -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fastrepl/anarlog migrate-to-sqlite --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .cursor/skills/migrate-to-sqlite && 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 "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .cursor/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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/fastrepl/anarlog.git --path .agents/skills/migrate-to-sqlite--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 fastrepl/anarlog --skill migrate-to-sqlite -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fastrepl/anarlog migrate-to-sqlite --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .gemini/skills/migrate-to-sqlite && 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 "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .gemini/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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 fastrepl/anarlog migrate-to-sqliteInstalls 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 fastrepl/anarlog --skill migrate-to-sqlite -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .github/skills/migrate-to-sqlite && 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 "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .github/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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 fastrepl/anarlog --skill migrate-to-sqlite -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fastrepl/anarlog migrate-to-sqlite --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/migrate-to-sqlite .opencode/skills/migrate-to-sqlite && 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 "migrate-to-sqlite" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/migrate-to-sqlite into .opencode/skills/migrate-to-sqlite/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-sqlite", 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.
migrate-to-sqliteMigrate a TinyBase table to SQLite. An agent skill from fastrepl/anarlog.
Migrate To Sqlite is an agent skill from fastrepl/anarlog. Migrate a TinyBase table to SQLite. Use when asked to move a data domain (e.g. templates, vocabs) from the TinyBase store to the app SQLite database.
Its SKILL.md is about 2.1k 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. It works with SQLite and Rust. The repository describes itself as: Open source Granola AI Alternative. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 385e117. 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:
pnpmcargonpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm and npx, which can reach the network depending on how they are called.
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.
Migrate To Sqlite loads about 2.1k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 963 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 fastrepl/anarlog at commit 385e117, republished under its MIT licence (© fastrepl). 963 words, ~2,092 tokens.
.claude/skills/migrate-to-sqlite/SKILL.md (or your agent's skills folder).Keep up to date as each PR lands. Outer box = fully done across both phases. Sub-bullets track sub-states where relevant.
This migration targets the TinyBase main store only. The separate
TinyBase settings store is out of scope unless the plan is explicitly
expanded to include it.
templates — already Drizzle, no Phase 0 neededcalendarsuseCalendar, useEnabledCalendars)services/calendar/ctx.ts has a cross-domain
calendars+events transaction; lands with events PReventssessionstranscriptshumansorganizationsenhanced_notessession/hooks/useEnhancedNotes.tsmapping_session_participantmapping_tag_sessionmapping_mentiontagschat_groupschat_messagessession_key_factstasksdaily_noteschat/store/*tasksmemoriessettings/memory/custom-vocabulary.tsxdaily_notesTwo-phase, per-domain migration. Each phase is many small PRs.
Before any storage swap, move every TinyBase call behind a domain hook
living in apps/desktop/src/<domain>/hooks.ts (or <domain>/hooks/*).
Hook return shapes are plain TypeScript; no TinyBase types leak out.
Consumer code stops importing ~/store/tinybase/store/main.
Scope note: this applies to consumers of
~/store/tinybase/store/main and the legacy ~/store/tinybase/hooks
barrel. Do not start wrapping settings.UI.* usage behind new hooks as
part of this effort; ~/store/tinybase/store/settings is intentionally
out of scope for this migration.
Why: one storage-swap PR per domain touches 1 file (the hook module), not 20–50 consumer files.
Enforced by anlg/no-raw-tinybase in eslint-plugin-anlg.mjs.
.oxlintrc.json keeps a TINYBASE_MIGRATION_PENDING override that
shrinks as each domain is cleaned. CI gates this via
.github/workflows/lint.yaml.
db.insert()/update()/delete().db-live-query
and mirrors rows into the in-memory TinyBase store. One-way only:
SQLite is the source of truth.useDrizzleLiveQuery one at a time. Consumers
untouched because hook signatures are stable.Skip the shadow bridge only for leaf-clean domains (no cross-table indexes/queries into or out of the domain, and <10 consumer sites).
crates/db-app/migrations/packages/db/src/schema.ts (typed TS query interface, not schema management)useDrizzleLiveQuery — calls .toSQL() on a Drizzle query, feeds {sql, params} to the underlying useLiveQuery which uses subscribe() from @anlg/plugin-dbdb.select()... through the Drizzle sqlite-proxy driverdb.insert(), db.update(), db.delete() through the Drizzle sqlite-proxy driver, wrapped in useMutation from tanstack-queryexecute → SQLite change → Rust db-live-query notifies subscribers → useLiveQuery fires onData → React re-renders. No manual invalidation needed.The DB stack uses a factory/DI pattern across four packages:
@anlg/db-runtime (packages/db-runtime/) — type contracts only: LiveQueryClient, DrizzleProxyClient, shared row/query types.@anlg/db (packages/db/) — Drizzle schema (schema.ts) + createDb(client) factory using drizzle-orm/sqlite-proxy. Re-exports Drizzle operators (eq, and, sql, etc.).@anlg/db-tauri (packages/db-tauri/) — Tauri-specific client that binds execute/executeProxy/subscribe from @anlg/plugin-db to the db-runtime types.@anlg/db-react (packages/db-react/) — createUseLiveQuery(client) and createUseDrizzleLiveQuery(client) factories.These are wired together in apps/desktop/src/db/index.ts, which exports db, useLiveQuery, and useDrizzleLiveQuery. Consumer code imports from ~/db, not directly from the packages.
Assumes Phase 0 already landed for this domain — consumers go through
<domain>/hooks.ts, not raw UI.*.
Add a new timestamped .sql file in crates/db-app/migrations/. Convention: YYYYMMDDHHMMSS_name.sql.
Do NOT include user_id columns — it was a TinyBase-era pattern with a hardcoded default. It will be redesigned when multi-device/team support lands.
Add <domain>_types.rs and <domain>_ops.rs in crates/db-app/src/ with typed sqlx::FromRow structs and CRUD functions. Export from lib.rs. These are used by other Rust code and legacy import; the TS side uses Drizzle instead.
If the domain had a TinyBase JSON persister file (e.g. templates.json), add an import function in plugins/db/src/migrate.rs that reads the old file and upserts rows. Call it from plugins/db/src/runtime.rs during startup. Guard with an "already imported" check (e.g. table non-empty).
Add the table definition to packages/db/src/schema.ts mirroring the migration. Use { mode: "json" } for JSON text columns, { mode: "boolean" } for integer boolean columns. Re-export from packages/db/src/index.ts if adding new operator re-exports.
Replace the hook module's TinyBase calls with Drizzle. Hook signatures stay the same, so consumer code doesn't change.
useDrizzleLiveQuery(db.select()...) for reactive readsdb.select()... for imperative reads (returns parsed objects via proxy driver)db.insert(), db.update(), db.delete() for writes, wrapped in useMutationImport db and useDrizzleLiveQuery from ~/db, and schema tables/operators from @anlg/db.
Live query results come from Rust subscribe as raw objects (not through the Drizzle driver), so mapRows must handle two things:
sections_json, targets_json).pin_order, targets_json), while Drizzle's $inferSelect uses camelCase (pinOrder, targetsJson). Define a separate <Domain>LiveRow type with snake_case keys for mapRows, distinct from the Drizzle inferred type. See TemplateLiveRow in apps/desktop/src/templates/queries.ts for the pattern.Add a small module that hydrates the TinyBase <domain> table from
SQLite on startup and subscribes to db-live-query to mirror subsequent
changes. One-way: SQLite → TinyBase. Retire once all consumers have
swapped.
packages/store/src/tinybase.tsstore/tinybase/store/main.ts (both QUERIES object and _QueryResultRows type)store/tinybase/persister/<domain>/)store/tinybase/store/persisters.tsstore/tinybase/hooks/ if they existedcargo check and cargo test -p db-app -p tauri-plugin-dbpnpm -F @anlg/desktop typecheckpnpm -F @anlg/desktop testnpx oxlint --quiet apps/desktop/src/ (the anlg/no-raw-tinybase CI gate)pnpm exec dprint fmt© fastrepl, 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 .agents/skills/migrate-to-sqlite of fastrepl/anarlog.
Open the folder on GitHubat commit 385e117
Migrate To Sqlite 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 |
|---|---|---|---|---|---|---|
| Migrate To Sqlite this skillfastrepl/anarlog | 9.5k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Rust Heavy Performanceveloxbase/veloxdb | 646 | — | ~733 | Automated safety check: Pass | MIT | |
| Cdphuoshen80/ReinaManager | 693 | — | ~178 | Automated safety check: Pass | AGPL-3.0 | |
| Hydra Architectstreamband/hydra-srt | 146 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Database Opsbkywksj/knowledge-base | 330 | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Golem Add Sqlite Rustgolemcloud/golem | 1.5k | — | ~1k | Automated safety check: Pass | Custom licence |
veloxbase/veloxdb
Enforces a Rust-first approach for heavy work in VeloxDB so expensive compute stays in Tauri/Rust instead of JavaScript.
huoshen80/ReinaManager
通过 CDP 连接 ReinaManager WebView2,复现、诊断并验证真实应用的前端问题。仅在用户显式调用 /cdp 或 $cdp 进行前端调试时使用。
streamband/hydra-srt
A skill your agent uses when designing or evolving Hydra platform architecture across Elixir/Phoenix, SQLite, VictoriaMetrics/VictoriaLogs analytics, native/Rust, and runtime boundaries.
bkywksj/knowledge-base
Tauri 本地数据库操作技能,使用 rusqlite 进行 SQLite 数据库操作. An agent skill from bkywksj/knowledge-base.
golemcloud/golem
Use embedded SQLite from a Rust Golem agent with rusqlite and the WASI VFS.
utensils/nxv
Find any version of any Nix package across nixpkgs git history using the nxv CLI or HTTP API.
fastrepl/anarlog
Use only in the Anarlog repository when the active checkout branch is exactly gitbutler/workspace.
fastrepl/anarlog
Use only in the Anarlog repository when the active checkout branch is exactly gitbutler/workspace.
fastrepl/anarlog
Inspect every open non-draft PR for CI failures and unresolved Cursor Bugbot findings, then fix them on the existing PR branches.
fastrepl/anarlog
Avoid direct React useEffect usage when writing or reviewing React components and hooks.
fastrepl/anarlog
QA Anarlog's critical Pro user journey on a signed staging candidate — onboarding, responsive launch, microphone and system-audio capture, automated summaries, and cloud sync.
fastrepl/anarlog
Build SQLite-backed reactive UI in apps/desktop using stable patterns for reads, selection, forms, writes, and loading states.
Categories
Migrate a TinyBase table to SQLite. An agent skill from fastrepl/anarlog. Migrate To Sqlite is an agent skill from fastrepl/anarlog. Migrate a TinyBase table to SQLite.
Migrate To Sqlite fits situations like: asked to move a data domain (e.g.
Run `npx skills add fastrepl/anarlog --skill migrate-to-sqlite -a claude-code`. Or copy the skill folder (.agents/skills/migrate-to-sqlite in fastrepl/anarlog) into .claude/skills/migrate-to-sqlite in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fastrepl/anarlog --skill migrate-to-sqlite -a codex`. Or copy the skill folder (.agents/skills/migrate-to-sqlite in fastrepl/anarlog) into .agents/skills/migrate-to-sqlite 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 fastrepl/anarlog --skill migrate-to-sqlite -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate-to-sqlite, .gemini/skills/migrate-to-sqlite, .github/skills/migrate-to-sqlite and .opencode/skills/migrate-to-sqlite in your project.
Going by SKILL.md and its folder, Migrate To Sqlite needs the command-line tools its instructions call (pnpm, cargo and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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.
Migrate To Sqlite is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k 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 Migrate To Sqlite: Rust Heavy Performance (veloxbase/veloxdb, 646 stars), Cdp (huoshen80/ReinaManager, 693 stars), Hydra Architect (streamband/hydra-srt, 146 stars) and Database Ops (bkywksj/knowledge-base, 330 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fastrepl (a GitHub organization) maintains it in fastrepl/anarlog, which has 9,452 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 2026.
Source: fastrepl/anarlog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.