sqlite

SQLite embedded database for local storage and mobile apps. Use for lightweight database needs.

7 stars

Best use case

sqlite is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

SQLite embedded database for local storage and mobile apps. Use for lightweight database needs.

Teams using sqlite should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/sqlite/SKILL.md --create-dirs "https://raw.githubusercontent.com/G1Joshi/Agent-Skills/main/skills/databases/sqlite/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/sqlite/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How sqlite Compares

Feature / AgentsqliteStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

SQLite embedded database for local storage and mobile apps. Use for lightweight database needs.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SQLite

SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. It reads and writes directly to ordinary disk files.

## When to Use

- **Mobile Apps**: The standard for iOS/Android local storage.
- **Edge/IoT**: Low memory footprint.
- **App File Format**: Instead of a custom `config.xml`, just use a SQLite db file.
- **Small/Medium Web Apps**: With WAL mode, it handles surprising concurrency (PocketBase, Castopod).

## Quick Start

```sql
-- Enable WAL mode for concurrency
PRAGMA journal_mode=WAL;

-- Create table
CREATE TABLE contacts (
	contact_id INTEGER PRIMARY KEY,
	first_name TEXT NOT NULL,
	last_name TEXT NOT NULL,
	email TEXT NOT NULL UNIQUE,
	phone TEXT NOT NULL UNIQUE
);
```

## Core Concepts

### Serverless

There is no "connection" in the TCP sense. You just open the file.

### Dynamic Typing

SQLite uses dynamic typing. A column declared `INTEGER` can actually store a string (though strict tables are now an option).

### WAL Mode (Write-Ahead Logging)

Significantly improves concurrency. Allows multiple readers and one writer simultaneously.

## Best Practices (2025)

**Do**:

- **Use `PRAGMA foreign_keys = ON`**: They are off by default.
- **Use JSONB (SQLite 3.45+)**: Store JSON as efficient binary blobs (`jsonb()`) for 3x faster processing.
- **Use STRICT Tables**: `CREATE TABLE t (...) STRICT` enforces types like a traditional DB.

**Don't**:

- **Don't use over NFS**: File locking on network shares is buggy. Keep the DB file on local disk.
- **Don't use for high-write webservices**: If you have hundreds of concurrent writes, move to Postgres.

## References

- [SQLite Documentation](https://www.sqlite.org/docs.html)