Sponsor Suno AI Music arrow_forward
Slash Command

Connection Pool

Set up and optimize database connection pooling

Type
Slash Command
GitHub stars
2.8k
License
MIT
Repo last updated
Sep 27, 2026

What Connection Pool is

Connection Pool is a slash command published in the jeremylongshore/tons-of-skills-marketplace repository on GitHub, which has about 2.8k stars. The repository describes itself as: “Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.”

A slash command is a reusable prompt saved as a markdown file and run by typing its name after a slash. In Claude Code, custom commands have been merged into skills: a file in .claude/commands/ and a skill folder in .claude/skills/ both create the same kind of command, and existing command files keep working.

Connection Pool gives you a repeatable way to run the same instructions without retyping them, optionally with arguments.

How to install Connection Pool

Claude Code

  1. Download connection-pool.md from the repository.
  2. Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md.
  3. Run it by typing / followed by its name.

Claude Cowork

  1. Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it.
  2. In Customize → Skills, click +, then upload the ZIP.
  3. Run it from any task with / and the skill name.

New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.

Inside the source file

An excerpt from plugins/database/database-connection-pooler/commands/connection-pool.md, shared under the repository's MIT license. Read the full file on GitHub.

You are a database connection pooling expert. Help implement efficient connection management.

Connection Pooling Concepts

  1. Why Connection Pooling?
  • Reduce connection overhead
  • Reuse established connections
  • Control max concurrent connections
  • Improve application performance
  • Prevent database overload
  1. Pool Configuration
  • Min pool size: Minimum idle connections
  • Max pool size: Maximum total connections
  • Connection timeout: Wait time for available connection
  • Idle timeout: Remove idle connections
  • Max lifetime: Recycle old connections
  1. Best Practices
  • Pool size = (CPU cores * 2) + disk spindles
  • Monitor connection usage
  • Set appropriate timeouts
  • Handle connection failures
  • Validate connections

Implementation Examples

Node.js (pg-pool)

const { Pool } = require('pg');

const pool = new Pool({
  host: 'localhost',
  port: 5432,
  database: 'mydb',
  user: 'user',
  password: 'password',
  max: 20,                    // Max connections
  min: 5,                     // Min connections
  idleTimeoutMillis: 30000,   // Close idle after 30s
  connectionTimeoutMillis: 2000, // Wait 2s for connection
  maxUses: 7500               // Recycle after 7500 uses
});

// Query with pool
async function getUser(id) {
  const client = await pool.connect();
…

Python (SQLAlchemy)

from sqlalchemy import create_engine
from sqlalchemy.pool import QueuePool

engine = create_engine(
    'postgresql://user:password@localhost/mydb',
    poolclass=QueuePool,
    pool_size=10,           # Number of connections
    max_overflow=20,        # Additional connections if needed
    pool_timeout=30,        # Wait 30s for connection
    pool_recycle=3600,      # Recycle after 1 hour
    pool_pre_ping=True      # Verify connection before use
)

# Use with context manager
def get_user(user_id):
    with engine.connect() as conn:
        result = conn.execute("SELECT * FROM users WHERE id = %s", user_id)
        return result.fetchone()

Java (HikariCP)

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");
config.setUsername("user");
config.setPassword("password");
config.setMaximumPoolSize(20);
config.setMinimumIdle(5);
config.setConnectionTimeout(30000);
config.setIdleTimeout(600000);
config.setMaxLifetime(1800000);

HikariDataSource dataSource = new HikariDataSource(config);

// Use connection
try (Connection conn = dataSource.getConnection()) {
    Statement stmt = conn.createStatement();
…

Monitoring Metrics

Track these metrics:

  • Active connections
  • Idle connections
  • Wait time for connections
  • Connection errors
  • Pool exhaustion events
  • Connection creation rate
  • Average connection duration

Common Issues

Problem: Connection Pool Exhaustion

Symptom: Timeout errors, slow requests Causes:

  • Pool too small
  • Connections not being released
  • Long-running queries
  • Connection leaks

Solutions:

// Always release connections
const client = await pool.connect();
try {
  // Your query
} finally {
  client.release(); // CRITICAL
}

// Or use pool.query (auto-releases)
await pool.query('SELECT * FROM users');

Problem: Too Many Connections

Symptom: Database rejecting connections Solution: Reduce max pool size or increase database max_connections

Configuration Guidelines

Small Application

Min: 2-5
Max: 10-20

Medium Application

Min: 5-10
Max: 20-50

Large Application

Min: 10-20
Max: 50-100

When Invoked

  1. Identify programming language and framework
  2. Determine database system
  3. Analyze expected load
  4. Provide pool configuration
  5. Generate implementation code
  6. Include monitoring setup
  7. Suggest best practices

Before you install

  • Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
  • Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
  • Try it in a test project or a copy of your files before pointing it at real work.
  • Pin the version you tested, and review changes before updating.
  • Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.

FAQ

What is Connection Pool?

Connection Pool is a slash command for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Set up and optimize database connection pooling

How do I install Connection Pool in Claude Code?

Download connection-pool.md from the repository. Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md. Run it by typing / followed by its name.

Can I use Connection Pool in Claude Cowork?

Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it. In Customize → Skills, click +, then upload the ZIP. Run it from any task with / and the skill name.

Is Connection Pool safe to install?

It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.

Similar resources

Browse all skills, subagents, and plugins →

Listing data comes from the public GitHub repository and was last checked in September 2026. Excerpts are © their authors and shared under MIT. This directory is independent and not affiliated with Anthropic or the resource's authors.