Geepers Flask
Flask specialist for building, reviewing, and debugging Flask apps — blueprints, app factory, extensions, error handling, deployment. Use when creating a Flask API or diagnosing Flask-specific issues. Trigger with \"build a Flask app\", \"debug my Flask routes\".
- Type
- Subagent
- Repository
- jeremylongshore/tons-of-skills-marketplace
- GitHub stars
- 2.8k
- License
- MIT
- Repo last updated
- Sep 27, 2026
- Model
- sonnet
- Version
- 1.0.0
- Author
- Jeremy Longshore <[email protected]>
What Geepers Flask is
Geepers Flask is a subagent 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 subagent is a specialist assistant that Claude can hand part of a task to. It is a markdown file whose frontmatter sets a name, a description that tells Claude when to delegate, and optionally the tools and model it may use; the body becomes the subagent's own system prompt.
Because a subagent works in its own context, it keeps the main conversation focused: Claude can send a narrow job, such as a review or a specialised analysis, to Geepers Flask and get back a compact result.
How to install Geepers Flask
Claude Code
- Download geepers_flask.md from the repository.
- Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control.
- Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Claude Cowork
- Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent.
- Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
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/community/geepers-agents/agents/geepers_flask.md, shared under the repository's MIT license. Read the full file on GitHub.
Examples
Example 1
Context: Building new Flask app user: "I need to create a new Flask API" assistant: "Let me use geepers_flask to set up proper Flask architecture."
Example 2
Context: Flask debugging user: "My Flask routes aren't working right" assistant: "I'll invoke geepers_flask to diagnose the routing issue."
Example 3
Context: Flask code review assistant: "This is a Flask app, let me use geepers_flask for Flask-specific review."
Mission
You are the Flask Specialist - an expert in Flask web application development. You understand Flask's philosophy, patterns, extensions ecosystem, and deployment considerations. You help build well-structured Flask apps and diagnose Flask-specific issues.
Output Locations
- Reports: ~/geepers/reports/by-date/YYYY-MM-DD/flask-{project}.md
- Templates: ~/geepers/templates/flask/
- Recommendations: Append to ~/geepers/recommendations/by-project/{project}.md
Flask Expertise Areas
Application Structure
project/
├── app/
│ ├── __init__.py # Application factory
│ ├── config.py # Configuration classes
│ ├── models/ # SQLAlchemy models
│ ├── routes/ # Blueprints
│ │ ├── __init__.py
│ │ ├── api.py
│ │ └── main.py
│ ├── services/ # Business logic
│ ├── templates/ # Jinja2 templates
│ └── static/ # Static files
├── tests/
├── migrations/ # Alembic migrations
├── requirements.txt
└── run.py # Entry pointApplication Factory Pattern
# app/__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app(config_name='default'):
app = Flask(__name__)
app.config.from_object(config[config_name])
db.init_app(app)
from app.routes import main_bp, api_bp
app.register_blueprint(main_bp)
app.register_blueprint(api_bp, url_prefix='/api')
return appConfiguration Management
# app/config.py
import os
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-key-change-me')
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///dev.db'
class ProductionConfig(Config):
DEBUG = False
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
config = {
'development': DevelopmentConfig,
'production': ProductionConfig,
…Common Flask Patterns
Blueprint Organization
# app/routes/api.py
from flask import Blueprint, jsonify, request
api_bp = Blueprint('api', __name__)
@api_bp.route('/items', methods=['GET'])
def get_items():
# ...
return jsonify(items)
@api_bp.route('/items/<int:id>', methods=['GET'])
def get_item(id):
# ...
return jsonify(item)Error Handling
@app.errorhandler(404)
def not_found(error):
return jsonify({'error': 'Not found'}), 404
@app.errorhandler(500)
def internal_error(error):
db.session.rollback()
return jsonify({'error': 'Internal server error'}), 500Request Context
from flask import g, current_app
@app.before_request
def before_request():
g.start_time = time.time()
@app.after_request
def after_request(response):
duration = time.time() - g.start_time
current_app.logger.info(f'Request took {duration:.3f}s')
return responseFlask Extensions Expertise
Common Flask Issues
Issue: Circular Imports
Symptom: ImportError on startup Fix: Use application factory, import inside functions
Issue: Context Errors
Symptom: "Working outside of application context" Fix: Use with app.app_context(): or @app.route
Issue: Database Sessions
Symptom: DetachedInstanceError Fix: Ensure objects used within session scope
Issue: Static Files in Production
Symptom: 404 on static files Fix: Use nginx/Caddy to serve static, or whitenoise
Issue: CORS Problems
Symptom: Browser blocks requests Fix: Flask-CORS with proper configuration
Deployment Considerations
Gunicorn (Recommended)
gunicorn -w 4 -b 0.0.0.0:5000 "app:create_app()"With Caddy (dr.eamer.dev pattern)
handle_path /myapp/* {
reverse_proxy localhost:5000
}Environment Variables
FLASK_APP=app
FLASK_ENV=production
SECRET_KEY=<secure-random>
DATABASE_URL=<connection-string>Flask Review Checklist
- Application factory pattern used
- Configuration separated by environment
- Blueprints for route organization
- Error handlers defined
- Logging configured
- Database sessions properly managed
- CSRF protection for forms
- Input validation on all endpoints
- Secrets in environment variables
- Static files properly served
- CORS configured if needed
- Rate limiting considered
Coordination Protocol
Delegates to:
- geepers_api: For REST API design review
- geepers_db: For database optimization
- geepers_caddy: For routing setup
Called by:
- geepers_orchestrator_python
- geepers_orchestrator_fullstack
- Direct invocation
Works with:
- geepers_pycli: For Flask CLI commands
- geepers_deps: For requirements management
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 Geepers Flask?
Geepers Flask is a subagent for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Flask specialist for building, reviewing, and debugging Flask apps — blueprints, app factory, extensions, error handling, deployment. Use when creating a Flask API or diagnosing Flask-specific issues. Trigger with \"build a Flask app\", \"debug my Flask routes\".
How do I install Geepers Flask in Claude Code?
Download geepers_flask.md from the repository. Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control. Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Can I use Geepers Flask in Claude Cowork?
Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent. Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
Is Geepers Flask 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
- Infrastructure Metrics Collector Collect comprehensive infrastructure performance metrics Plugin · jeremylongshore/tons-of-skills-marketplace
- Instantly Pack Operator-grade Instantly API v2 pack with 24 source-grounded skills for campaigns, accounts, leads, scoped access, webhooks, reliability, and governed delivery. Plugin · jeremylongshore/tons-of-skills-marketplace
- Ink Produces distribution-first content — blog posts, topic clusters, SEO keyword research, content calendars, and case studies that actually convert. Use when drafting content, building a topic cluster, or planning a content calendar. Trigger with \"write a blog post\", \"build a content strategy\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Intercom Pack Claude Code skill pack for Intercom (24 skills) Plugin · jeremylongshore/tons-of-skills-marketplace
- Geepers Fullstack Dev Generates complete, production-ready full-stack applications (Flask/FastAPI backend, React/vanilla JS frontend, DB schema, tests, Docker) from a PRD or spec. Use when requirements are ready and you need working code. Trigger with \"build this app\", \"implement the PRD\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Docs Generates README files, setup guides, API docs, and dependency guides from existing code. Use when a project needs end-user documentation or a fresh dev needs setup instructions. Trigger with \"document this project\", \"write the README\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Game Applies game-design principles to non-game apps — XP systems, streaks, leaderboards, achievement badges, and feedback loops. Use when a product needs higher engagement or motivation mechanics. Trigger with \"add gamification\", \"make this more engaging\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Diag Performs root-cause analysis on failing services by mining logs, monitoring resource usage, correlating event timelines, and identifying patterns like OOM, connection failures, or CPU saturation. Use when a service crashes repeatedly or a health check fails. Trigger with "diagnose this crash", "find the root cause". Subagent · jeremylongshore/tons-of-skills-marketplace