postgresql-skill
/install postgresql-skill
PostgreSQL Database Operations
Pure Python PostgreSQL skill using psycopg2 (no psql client needed).
When to Use
Use this skill when the user needs to:
- List database tables: "What tables are in the database?", "show tables"
- View table structure: "What columns does the users table have?", "describe users"
- Execute SQL queries: "Get all users", "SELECT * FROM users"
- Get schema summary: "What's the database structure?", "schema overview"
- Modify data: Insert, update, or delete records
When NOT to Use
- User asks conceptual questions (e.g., "What is PostgreSQL?")
- User needs data analysis or business insights (requires LLM reasoning)
- User wants natural language to SQL conversion (should be handled by upper-layer Agent)
- Database is not PostgreSQL
Usage Guidelines for AI Agents
Step 1: Check Prerequisites
Before using this skill, ensure:
- Python 3 is installed
- Dependencies are installed:
pip install psycopg2-binary pyyaml config.yamlexists with valid database connection details
If config.yaml is missing, instruct the user to:
cp config.example.yaml config.yaml
# Then edit config.yaml with real database credentials
Step 2: Choose the Right Command
| User Intent | Command | Example |
|---|---|---|
| List tables | python scripts/pgsql_skill.py list-tables |
Get all table names |
| Describe table | python scripts/pgsql_skill.py describe-table \x3Ctable> |
describe-table users |
| Query data | python scripts/pgsql_skill.py execute-sql "\x3CSQL>" |
execute-sql "SELECT * FROM users LIMIT 10" |
| Schema overview | python scripts/pgsql_skill.py schema-summary |
Full database structure |
Step 3: Parse Results
All commands return JSON (except schema-summary):
list-tables output:
{"tables": ["users", "orders", "products"]}
describe-table output:
{
"table": "users",
"columns": [
{"name": "id", "type": "integer", "nullable": false, "default": null},
{"name": "username", "type": "varchar", "nullable": false, "default": null}
]
}
execute-sql SELECT output:
{
"columns": ["id", "username", "email"],
"rows": [
{"values": ["1", "alice", "[email protected]"]},
{"values": ["2", "bob", "[email protected]"]}
]
}
execute-sql INSERT/UPDATE/DELETE output:
{"affected_rows": 1}
Step 4: Handle Errors
If a command fails, check the error message:
"error": "config.yaml not found"→ Guide user to create config"error": "psycopg2 not installed"→ Runpip install psycopg2-binary"error": "connection failed"→ Verify database credentials"error": "Forbidden operation"→ SQL violates safety rules
Safety Rules
This skill enforces strict SQL safety:
✅ Allowed:
- SELECT queries
- INSERT (single row only)
- UPDATE (must have WHERE clause)
- DELETE (must have WHERE clause)
❌ Blocked:
- DROP TABLE/DATABASE
- TRUNCATE TABLE
- ALTER TABLE
- Batch INSERT (multiple rows)
- UPDATE/DELETE without WHERE
Example of blocked query:
python scripts/pgsql_skill.py execute-sql "DROP TABLE users"
# Output: {"error": "Forbidden operation: DROP"}
Programmatic Integration
For advanced usage, import directly in Python:
import sys
from pathlib import Path
sys.path.insert(0, 'scripts')
from pgsql_skill import Database, load_config
# Initialize database connection
config = load_config()
db = Database(
host=config['host'],
port=config['port'],
dbname=config['dbname'],
user=config['user'],
password=config.get('password', '')
)
# Use database methods
tables = db.list_tables()
structure = db.describe_table("users")
result = db.execute_sql("SELECT count(*) FROM users")
# Always close connection
db.close()
Troubleshooting
- ModuleNotFoundError: psycopg2: Run
pip install psycopg2-binary- On macOS with managed Python:
pip install psycopg2-binary --no-binary :all:
- On macOS with managed Python:
- config.yaml not found: Copy from config.example.yaml
- Connection failed: Verify host/port/user/password in config.yaml
- Permission denied: Check database user permissions
Best Practices
- Add LIMIT to SELECT queries to avoid large result sets
- Always check errors before proceeding
- Close connections when using programmatic API
- Warn users before data modifications (INSERT/UPDATE/DELETE) and confirm intent
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install postgresql-skill - After installation, invoke the skill by name or use
/postgresql-skill - Provide required inputs per the skill's parameter spec and get structured output
What is postgresql-skill?
Execute PostgreSQL database operations using psycopg2. List tables, describe schema, execute SQL queries. It is an AI Agent Skill for Claude Code / OpenClaw, with 42 downloads so far.
How do I install postgresql-skill?
Run "/install postgresql-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is postgresql-skill free?
Yes, postgresql-skill is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does postgresql-skill support?
postgresql-skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created postgresql-skill?
It is built and maintained by tengshengbo (@tengshengbo); the current version is v1.0.1.