Agent skill

Liveserver

by mathiasertl in mathiasertl/django-ca

Start a local Django development server and make HTTP requests against it for interactive endpoint testing

GPL-3.0Auto-check passedBackend & APIs

Install Liveserver

skills CLI
$ npx skills add mathiasertl/django-ca --skill liveserver -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mathiasertl/django-ca liveserver --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mathiasertl/django-ca.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.opencode/skills/liveserver .claude/skills/liveserver && rm -rf skills-src

Use ~/.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/

Facts

Skill name
liveserver
GitHub stars
158
Token cost
~977 tokens
SKILL.md length
278 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
GPL-3.0

At a glance

Start a local Django development server and make HTTP requests against it for interactive endpoint testing

  • Works in 2 steps: GET the target page (e.g. /admin/login/)… → Include it as both the X-CSRFToken…
  • Tasks that involve Backend development
  • SKILL.md covers Overview, Initial setup (first time…, Starting the server and Making HTTP requests, plus 2 more sections
  • Runs Python scripts from its folder; calls uv and curl

What it does

Liveserver is an agent skill from mathiasertl/django-ca. Start a local Django development server and make HTTP requests against it for interactive endpoint testing

Its SKILL.md is about 980 tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `liveserver_settings.py`).

It sits in Backend & APIs, covering Backend development, Cryptography and API testing. It works with Django and Python. The repository describes itself as: A TLS certificate authority with CRL, OCSP, HSM and ACMEv2 support and more. The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve Backend development
  • Tasks that involve Cryptography
  • Tasks that involve API testing

Example prompts

  • “/liveserver”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. GET the target page (e.g. /admin/login/) and extract the csrftoken cookie value.
  2. Include it as both the X-CSRFToken header and the csrfmiddlewaretoken form field on all POST/PUT/DELETE requests.

What it can do on your machine

Read from SKILL.md and the folder at commit feabb70. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Liveserver loads about 977 tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 278 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~29
When it runs · the whole SKILL.md, loaded when a task matches
~977

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from mathiasertl/django-ca at commit feabb70, republished under its GPL-3.0 licence (© mathiasertl). 278 words, ~977 tokens.

Download SKILL.mdSave it as .claude/skills/liveserver/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
liveserver
description
Start a local Django development server and make HTTP requests against it for interactive endpoint testing

Overview

The live server uses liveserver_settings.py (located alongside this file in .opencode/skills/liveserver/) and runs on http://127.0.0.1:8001. All commands below must be run from the repo root.

The settings file is loaded by adding its directory to PYTHONPATH at invocation time:

bash
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings

It provides a persistent SQLite database and real CA file storage — independent of the test suite.

CA_USE_CELERY = False so all tasks (CRL generation, OCSP key creation, etc.) run synchronously in-process — no Celery worker is needed.

Initial setup (first time only, or after deleting the database)

bash
# Create the CA files directory
mkdir -p ca/liveserver_files

# Apply migrations to create the local SQLite database
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings \
    uv run python ca/manage.py migrate

# Create a superuser for admin access
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings \
    uv run python ca/manage.py createsuperuser

Starting the server

First, check whether it is already running:

bash
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8001/django_ca/ 2>/dev/null

If that returns 301 or 200, the server is already up — skip starting it.

Otherwise, start it in the background:

bash
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings \
    uv run python ca/manage.py runserver 127.0.0.1:8001 \
    > .opencode/skills/liveserver/liveserver.log 2>&1 &
echo $! > .opencode/skills/liveserver/liveserver.pid
sleep 2  # wait for startup

Verify it started successfully:

bash
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8001/django_ca/

Check logs if something looks wrong:

bash
cat .opencode/skills/liveserver/liveserver.log

Making HTTP requests

Use the FetchMCP tool for all requests. The base URL is http://127.0.0.1:8001.

Key URLs
EndpointURL
Admin interfacehttp://127.0.0.1:8001/admin/
REST API roothttp://127.0.0.1:8001/django_ca/api/
ACME directoryhttp://127.0.0.1:8001/django_ca/acme/directory/
CRL (per CA)http://127.0.0.1:8001/django_ca/crl/<serial>/
OCSP (per CA)http://127.0.0.1:8001/django_ca/ocsp/<serial>/
Authentication
  • Admin / session-based views: POST to /admin/login/ with username, password, and csrfmiddlewaretoken. Retrieve the CSRF token first with a GET to the login page (look for csrfmiddlewaretoken in the HTML or csrftoken cookie).
  • REST API: The API uses session auth by default. Log in via admin first and reuse the session cookie, or check CA_ENABLE_REST_API endpoints for token auth options.
  • OCSP / CRL: No authentication needed — these are public endpoints.
CSRF for POST requests
  1. GET the target page (e.g. /admin/login/) and extract the csrftoken cookie value.
  2. Include it as both the X-CSRFToken header and the csrfmiddlewaretoken form field on all POST/PUT/DELETE requests.

Stopping the server

bash
kill "$(cat .opencode/skills/liveserver/liveserver.pid)" 2>/dev/null \
    || pkill -f "manage.py runserver 127.0.0.1:8001"
rm -f .opencode/skills/liveserver/liveserver.pid

Resetting state

To start fresh (wipe DB and CA files):

bash
rm -f ca/liveserver.sqlite3
rm -rf ca/liveserver_files/
mkdir -p ca/liveserver_files
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings \
    uv run python ca/manage.py migrate
PYTHONPATH=.opencode/skills/liveserver DJANGO_SETTINGS_MODULE=liveserver_settings \
    uv run python ca/manage.py createsuperuser

© mathiasertl, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .opencode/skills/liveserver of mathiasertl/django-ca.

  • SKILL.md
  • liveserver_settings.py

Open the folder on GitHubat commit feabb70

Compare with similar skills

Liveserver 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.

Liveserver compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Liveserver this skillmathiasertl/django-ca158—~977Automated safety check: PassGPL-3.0
Django Access Reviewgetsentry/skills1k3 repos~2.6kAutomated safety check: NotesApache-2.0
Silk Profilerbaserow/baserow6.1k—~2.9kAutomated safety check: PassCustom licence
Django Run Locallyfossasia/eventyay1.7k—~411Automated safety check: PassApache-2.0
Fix Slow Endpointvpcarlos/profyle123—~2.1kAutomated safety check: PassMIT
Silk Debugletsrevel/revel-backend109—~1.2kAutomated safety check: PassMIT

Similar skills

  • Django Access Review

    getsentry/skills

    Official

    Django access control and IDOR security review. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 3 repos~2.6k tokens
    Backend & APIsAuto-check: notes
  • Silk Profiler

    baserow/baserow

    Investigate backend performance using Django Silk profiling data.

    6.1k GitHub stars~2.9k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Django Run Locally

    fossasia/eventyay

    Steps for initiating the Django development server without Docker

    1.7k GitHub stars~411 tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Fix Slow Endpoint

    vpcarlos/profyle

    Diagnose and fix a slow endpoint or request in a Python web app (FastAPI, Flask, Django, Tornado, any ASGI/WSGI framework) using real Profyle/VizTracer traces, then prove the fix by replaying the…

    123 GitHub stars~2.1k tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Silk Debug

    letsrevel/revel-backend

    Analyze Django Silk profiling data to debug slow requests, detect N+1 queries, and optimize database performance.

    109 GitHub stars~1.2k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Configure Ecc

    xu-xiang/everything-claude-code-zh

    Everything Claude Code 的交互式安装程序 — 引导用户选择并安装技能和规则到用户级或项目级目录,验证路径,并可选择优化已安装文件。

    2k GitHub starsUsed in 1 repo~2.1k tokens
    Backend & APIsAuto-check passed

More from mathiasertl/django-ca

  • Pytest

    mathiasertl/django-ca

    Instructions for running, writing, and maintaining tests in this project

    158 GitHub stars~924 tokensUpdated 4 days ago
    Auto-check passed

Works with

Categories

Questions about Liveserver

What does Liveserver do?

Start a local Django development server and make HTTP requests against it for interactive endpoint testing. Liveserver is an agent skill from mathiasertl/django-ca.

When should I use Liveserver?

Liveserver fits situations like: tasks that involve Backend development; tasks that involve Cryptography; tasks that involve API testing.

How do I install Liveserver in Claude Code?

Run `npx skills add mathiasertl/django-ca --skill liveserver -a claude-code`. Or copy the skill folder (.opencode/skills/liveserver in mathiasertl/django-ca) into .claude/skills/liveserver in your project. Claude Code loads it when a task matches its description.

How do I install Liveserver in Codex?

Run `npx skills add mathiasertl/django-ca --skill liveserver -a codex`. Or copy the skill folder (.opencode/skills/liveserver in mathiasertl/django-ca) into .agents/skills/liveserver in your project. Codex loads it when a task matches its description.

Can I use Liveserver in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mathiasertl/django-ca --skill liveserver -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/liveserver, .gemini/skills/liveserver, .github/skills/liveserver and .opencode/skills/liveserver in your project.

What does Liveserver need to run?

Going by SKILL.md and its folder, Liveserver needs Python for the scripts in its folder and the command-line tools its instructions call (uv and curl). Our summary lists: Python 3.

Does Liveserver access the network?

SKILL.md contains no URLs. Its commands use uv and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Liveserver safe to install?

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.

What licence does Liveserver use?

Liveserver is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Liveserver use?

About 977 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Liveserver?

Skills that share tags, products or a category with Liveserver: Django Access Review (getsentry/skills, 1k stars), Silk Profiler (baserow/baserow, 6.1k stars), Django Run Locally (fossasia/eventyay, 1.7k stars) and Fix Slow Endpoint (vpcarlos/profyle, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Liveserver?

mathiasertl (a GitHub user) maintains it in mathiasertl/django-ca, which has 158 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 4, 2026.

Source: mathiasertl/django-ca on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.