Secrets Management logo

Secrets Management

Community
nahid-sparktales
secrets-management

Keep credentials out of code, logs, bundles and history — one supply path, scoped per environment, rotatable on demand — and run the rotate-first response when one has already leaked. Use when adding or moving a key, token, connection string or signing secret, when a scanner or reviewer finds one committed, when a credential appears in logs or a client bundle, or when rotation is due. Not for deciding what a credential may access, and not for vulnerability advisories in dependencies.

Overview

Publishernahid-sparktales
Repositoryagent-dispatcher
Skill namesecrets-management
Stars
58
Forks
5
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by nahid-sparktales on GitHub. Read the source before you install it.

Installation

Install the Secrets Management AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/security/secrets-management
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/nahid-sparktales/agent-dispatcher.git /tmp/agent-dispatcher
mkdir -p .claude/skills
cp -r /tmp/agent-dispatcher/skills/security/secrets-management .claude/skills/secrets-management
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Secrets Management in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Secrets Management on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Secrets Management is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Secrets management

Two different jobs share one skill because the second is always urgent and the first is what stops it recurring. If a secret has already leaked, start at When one has leaked and come back after.

When this fires

A credential is being introduced, moved, shared or rotated; a scanner, review or log inspection turns one up; a key needs to reach a new environment or service. It does not fire for deciding what a credential is permitted to do once valid.

Procedure — keeping them out

  1. Inventory what counts. API keys, database URLs carrying passwords, private and signing keys, OAuth client secrets, webhook signing secrets, session secrets, cloud credentials. For each: which environments it exists in, who owns it, where it is stored, how it is rotated. A secret nobody owns is a secret nobody rotates.
  2. Establish one supply path and make everything else a defect. Injected at runtime from the platform's secret store or environment, read once at startup through a single config module. Committed .env files, hardcoded fallback defaults, secrets in CI configuration files, build arguments and image layers are all the same failure with different file extensions.
  3. Search the working tree, then search the history separately. They are different questions. A key rotated out of the current tree is still exposed if it sits in a commit anyone can fetch.
  4. Put prevention in the path, not in a habit. Scanning at commit time and in CI so the build fails, plus the host's push protection where it exists. Say plainly that pattern scanners miss custom and high-entropy-free formats — they lower the rate, they do not close the hole.
  5. Close the log path, which leaks more than git does. Application logs, error messages, stack traces, HTTP client debug output, crash and analytics reporters, and URL query strings. Redact at the logging boundary so a new call site inherits it, and never place a credential in a URL.
  6. Check the client bundle. Anything shipped to a browser or mobile app is public no matter how it is named. Confirm that only the deliberately public values carry a public prefix, and search the built output rather than the source.
  7. Scope and separate. A distinct credential per service and per environment, with the narrowest permission that works, and short-lived where the provider issues short-lived ones. One key shared everywhere means one leak rotates everything at once.
  8. Make rotation routine before it is an emergency. Know whether each secret can be rotated without downtime — most providers allow two valid keys briefly, and that overlap is what makes a clean rotation possible. A rotation procedure that has never been executed is a document, not a capability; rehearse it in a non-production environment.
  9. Review who can read the store. People, CI jobs, and any workflow that runs on contributions from outside the team. Secrets exposed to builds triggered by forks are a standing leak.

When one has leaked

  1. Treat it as compromised from the moment it was written, regardless of how briefly, how private the repository is, or who "could realistically have seen it". Private repositories get cloned, forked and made public.
  2. Rotate or revoke first — but revoking a live credential can take a service down, so name the credential, its blast radius and the dependents, and get the owner's decision before executing. Prepare the rotation, do not silently perform it.
  3. Establish the window and the audience. When it entered, through which channel, who or what could read it in that period, and whether it also reached a third party such as a log or error service. An external sink counts as exposure.
  4. Look for use. The provider's audit log for calls in the window from unexpected sources. Say explicitly that finding nothing there is not proof it was unused — most providers do not log enough to support that claim.
  5. Purge afterwards, never instead. History rewriting is disruptive, needs coordination with everyone holding a clone, and still leaves the old objects in forks, caches and mirrors. Rewriting shared history is a stop-and-ask action. Rotation is the control; removal is cleanup.
  6. Fix the path that let it in — the missing scanner, the example file that became real, the log line — and write the incident down: what leaked, when, what was rotated, what was checked.

Checklist

  • Every secret has an owner, a store, an environment scope and a rotation method
  • One documented supply path; no credential in code, CI config, build args or image layers
  • Working tree and history searched as separate passes
  • Commit-time and CI scanning in place, with its blind spots stated
  • Redaction at the logging boundary; no secret in any URL
  • Built client bundle inspected, not just the source
  • Credentials distinct per service and environment, least privilege
  • Rotation rehearsed somewhere real, with the overlap behaviour known
  • On a leak: rotation proposed with blast radius before anything is revoked
  • On a leak: exposure window, provider audit check and written incident record

Failure handling

  • Rotation would break production — that is a finding, not a reason to skip it. Report the dependency that blocks it, propose the overlap plan, and let the owner schedule it.
  • The secret is embedded in a deployed client — rotation alone does not help, because the new value ships the same way. The fix is moving the call server-side; say so rather than rotating in a circle.
  • The scanner flags a false positive — confirm it is genuinely an example or a test fixture before dismissing it, and make it obviously fake so the next reviewer does not re-litigate it.
  • A secret was only in a log, not in code — same exposure, different medium. Rotate, then find the log sink's retention and who reads it.
  • You cannot tell whether it was ever valid — treat it as valid. Verifying by using the credential is an action against someone's system; ask the owner instead.

Evidence to report

Where each secret now comes from and where it no longer appears — the file, the log line, the bundle path. The scan performed, the tool used, and what it cannot catch. For a leak: the exposure window, the channel, what was rotated and by whom, what the provider's audit log showed for that window, whether history was purged and what that does not reach, and the prevention now in the path. Naming rotation as "handled" without saying who executed it is not evidence.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Secrets Management AI skill do?

Keep credentials out of code, logs, bundles and history — one supply path, scoped per environment, rotatable on demand — and run the rotate-first response when one has already leaked. Use when adding or moving a key, token, connection string or signing secret, when a scanner or reviewer finds one committed, when a credential appears in logs or a client bundle, or when rotation is due. Not for deciding what a credential may access, and not for vulnerability advisories in dependencies.

Why use Secrets Management on TypingMind?

Because you install it once and use it with any model. Secrets Management is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Secrets Management in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/security/secrets-management. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Secrets Management?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Secrets Management?

As many as you like. As long as a model supports skills, you can use Secrets Management with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Secrets Management AI skill free?

Yes. It is published on GitHub by nahid-sparktales under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇