k-dense-ai/scientific-agent-skills/autoskill
- community
Checking that the SKILL.md file is still in the repository.
Analyzes user-requested Screenpipe history windows to detect repeated research workflows, match existing scientific skills, and stage new skill drafts or composition recipes for review. Requires a reachable Screenpipe HTTP API, normally on localhost:3030. Detection and embedding inference run locally; the selected LLM receives redacted app/title cluster summaries and matched skill descriptions. Use only when the user explicitly asks to analyze their recent work and propose skills.
Install
npx vskill@latest install k-dense-ai/scientific-agent-skills/autoskillSKILL.md
autoskill
Requires a running [screenpipe](https://github.com/screenpipe/screenpipe) daemon. This skill has no alternate data source — it reads exclusively from the local screenpipe HTTP API (defaulthttp://localhost:3030). If the daemon isn't running,run()raisesScreenpipeUnreachablewith install instructions.
Network access & environment variables. This skill makes authenticated HTTP requests to (a) the user's local screenpipe daemon on loopback, and (b) the user-configured LLM backend — one ofhttp://localhost:1234/v1(LM Studio, default),https://api.anthropic.com(opt-in Claude), or a user-supplied BYOK Foundry gateway. The adapters readSCREENPIPE_TOKEN,LM_API_TOKEN,ANTHROPIC_API_KEY, andFOUNDRY_API_KEYfor the corresponding configured service. HTTPX also honors its standard proxy and CA environment settings; sentence-transformers uses Hugging Face cache/download settings. Opt-in cloud backends receive redacted cluster summaries and matched skill descriptions. Embedding-model installation may also download public model files; local inference does not imply zero network access.
Overview
Turn the user's own workflow history — captured passively by the local screenpipe daemon — into new skills. This skill is on-demand: the user invokes it with a time window, it queries screenpipe's local HTTP API, clusters repeated workflow patterns, compares each pattern against the existing skills in this repo, and produces a staged folder of proposals the user can review, edit, and promote.
When to Use This Skill
Invoke this skill when the user asks to:
- "Analyze my last 4 hours / day / week and propose new skills."
- "Look at what I've been doing and tell me what's not covered yet."
- "Draft a skill from my recent workflow."
- "Find composition recipes for workflows I repeat."
Do not invoke it for one-off questions about screenpipe itself, for real-time screen queries, or without an explicit user request — the skill analyzes sensitive local content and must stay explicitly user-triggered.
Privacy Posture
- Configure capture filtering in Screenpipe before collecting history.
references/screenpipe-config.yamlis a checklist of literal, case-insensitive app/title substrings, not a Screenpipe-importable YAML file. Apply them in Screenpipe settings or as repeated--ignored-windowsarguments;*is not a glob. Check exclusions with synthetic windows. Filtering cannot remove sensitive material already captured or guarantee complete exclusion. - Raw OCR is not sent to the synthesis backend by this pipeline.
scripts/fetch_window.pypulls data over localhost HTTP.scripts/cluster.pyreduces the timeline to app/duration/title summaries.scripts/redact.pyscrubs recognizable emails, API keys, bearer tokens, and selected phone formats as defense-in-depth before any cluster summary reaches the LLM. - LLM backend defaults to `local`. Use an already installed chat model served by LM Studio; its exact server model ID belongs in
local.model. Summaries stay on the machine only while this endpoint is loopback. A remote HTTPS endpoint also sends summaries off-host. Cloud backends (claude,foundry) remain opt-in. Detection and embedding inference run locally regardless of backend choice. - Dry-run mode (
--dry-run) skips skill matching and LLM synthesis and writes a clusteredplan.md. Review the retained app names and window titles before selecting a cloud backend; the regex scrubber does not guarantee anonymization or removal of unpublished research details. - TLS for localhost (optional, for corporate policy): see
references/https-proxy.mdfor the Caddy pattern.
Prerequisites
1. Screenpipe daemon
Either install the official release or build from source. Either way the daemon binds HTTP on localhost:3030 by default.
From source (recommended if you want the CLI daemon without the desktop GUI):
This source-build example is illustrative and was not compiled in the API review. Check the installed screenpipe record --help; permissions and system dependencies vary by platform/release. On macOS, grant the requested Screen Recording/Accessibility permissions and relaunch. Review the full deny-list before real capture.
2. Screenpipe API token
Current Screenpipe enables API auth by default; protected routes such as /search require a bearer token even on loopback. /health is exempt, so a successful health check does not validate search authorization. For an authenticated instance, retrieve its local API token:
(Or set screenpipe.token directly in config.yaml — env var is preferred since it keeps secrets out of version control.)
Screenpipe connections permit HTTP only on loopback; remote endpoints require HTTPS. Generated draft names must be valid skill names, so model output cannot write outside the proposal directory.
3. Python environment
Create a separate environment; do not add scientific dependencies to the repository environment:
The public sentence-transformers/all-MiniLM-L6-v2 model downloads on first use. For an existing cache, set embeddings.local_files_only: true to prevent download attempts. Its 384-dimensional embeddings truncate inputs beyond 256 word pieces; long summaries may lose detail. Similarity is a retrieval heuristic, not proof of workflow equivalence.
4. Local LLM (default path) — LM Studio
- Install LM Studio.
- Choose a chat model already installed on your machine (
lms ls). Match the context length to its supported limits and available memory; no particular GPU fit is assumed. - Load it with a stable identifier and start the API server explicitly:
This setup is illustrative; no model was downloaded or inferred during this review. lms load does not itself start the HTTP server. If LM Studio's Require Authentication option is enabled (0.4.0+), set LM_API_TOKEN to a token created in its server settings. doctor checks the configured ID against /v1/models; the list can include JIT-loadable models and does not prove inference succeeds.
5. Cloud LLM backends (optional, opt-in)
Only if you explicitly opt out of local:
claude: setANTHROPIC_API_KEY, flipbackend: claudeinconfig.yaml.foundry: setFOUNDRY_API_KEY, flipbackend: foundry, and setfoundry.endpointtohttps://<resource>.services.ai.azure.com/anthropic(or a gateway with that same Messages contract). Setfoundry.modelto the deployment name. This adapter supports API-key auth, not Entra token acquisition; Entra-only deployments need a different client.
Architecture
Workflow
The skill ships a unified CLI at scripts/autoskill.py with three subcommands:
0. Preflight with doctor
Before a full run, check connectivity and backend configuration:
The report covers config (backend choice valid), skills_dir (exists), screenpipe (public health endpoint reachable), and llm (LM Studio lists the configured model, or a cloud API key is present). It does not fetch history, verify Screenpipe search auth, test cloud credentials, run inference, or load embedding weights. Non-zero exit on any failure, with the offending line marked error.
1. Run the pipeline
Proposals land in ~/.autoskill/proposed/<timestamp>/ by default, keeping experimental output out of the skills repo. Pass --out PATH to override.
Internally:
- Fetch —
fetch_windowuses/searchwith a fixed time window and limit/offset pagination, explicitly disables cloud results, frame images, and APIfilter_pii(which can call a remote enclave). It normalizes OCR/UI/accessibility/input/audio rows to{ts, app, window_title, text, content_type}. Memory/parsed records are skipped with a warning because they are not activity events. Malformed or incomplete pagination fails instead of producing a silently partial report. - Redact —
redactscrubs recognizable secret patterns from event text, app names, and window titles as defense-in-depth over screenpipe's own PII removal. - Cluster —
segment_sessionssplits on idle gaps (default 10 min) and drops short sessions;cluster_sessionsgroups sessions by the ordered list of distinct apps and keeps clusters of sizemin_cluster_size(default 2). - Match —
load_skill_descriptionsreads frontmatter from everySKILL.mdinskills/;top_k_matchesranks each cluster against all skills using localsentence-transformersembeddings (cosine similarity). - Synthesize —
synthesizeprompts the configured LLM backend to classify each cluster asreuse,compose, ornoveland emit a SKILL.md body where appropriate. - Report — writes
<out_dir>/<ts>/report.md, plusnew-skills/<name>/SKILL.mdorcomposition-recipes/<name>/SKILL.mdfor each proposal.
Add --dry-run to stop after clustering; this skips the LLM (and the sentence-transformers load), writing only plan.md for inspection.
2. Review and promote
Open ~/.autoskill/proposed/<ts>/report.md, edit drafts in place, delete anything you don't want. Then:
Validate each draft with uv run skills-ref validate <draft-directory> and follow the repository's tests/scan rules before promotion. The LLM draft is not automatically spec-validated.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/autoskill/SKILL.md
Popularity
- Repository stars
- 33,157
- Repository forks
- 3,256
- 7-day trend score
- 52
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/k-dense-ai/scientific-agent-skills/autoskill)