microsoft / microsoft/agentsleague
Project: Creative Apps - promptHider
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 286
- Forks
- 92
- Avg merge
- 12h 44m
- Merged PRs (30d)
- 1
Description
Track
Creative Apps (GitHub Copilot)
Project Name
promptHider
GitHub Username
@Kevin-CNC
Repository URL
https://github.com/Kevin-CNC/vs-prompt-obfuscator
Project Description
PromptHider is a VS Code extension that automatically anonymizes sensitive data before sending prompts to LLMs, allowing you to prompt all your problems away!
It solves the critical security risk of accidentally leaking secrets (API keys, passwords, IPs, credentials) to third-party AI models!
Key features include: regex-based pattern matching with customizable rules, bidirectional token mapping for consistent anonymization across multi-turn conversations, selective command execution with automatic de/re-anonymization, and Terraform-aware IaC scanning for intelligent pattern detection.
Demo Video or Screenshots
Demo Video: https://drive.google.com/file/d/1d7d09oDOID5k-uAsEalWUcu8TYq0g5QA/view?usp=sharing
Primary Programming Language
TypeScript/JavaScript
Key Technologies Used
TypeScript
Vue 3 + Pinia
Vite + Webpack
Tailwind CSS
VS Code Extension API (v1.85.0+)
Submission Type
Individual
Team Members
No response
Submission Requirements
- My project meets the track-specific challenge requirements
- My repository includes a comprehensive README.md with setup instructions
- My code does not contain hardcoded API keys or secrets
- I have included demo materials (video or screenshots)
- My project is my own work with proper attribution for any third-party code
- I agree to the Code of Conduct
- I have read and agree to the Disclaimer
- My submission does NOT contain any confidential, proprietary, or sensitive information
- I confirm I have the rights to submit this content and grant the necessary licenses
Quick Setup Summary
1- Clone the repository.
2- Install dependencies whilst in the 'main' folder.
3- Execute npm run build whilst in the 'webview-ui' folder.
4- Launch in Extension Development Host.
On the first launch, simply configure the prompthider file, then use the >PromptHider: Open Main UI command to open the UI and insert the rules.
IMPORTANT: WHEN USING IT, ALWAYS INVOKE @PromptHider CHAT PARTICIPANT IF YOU WANT IT TO ANONYMISE THE REGEX WITHIN YOUR CURRENT CONTEXT!
Technical Highlights
-
Agentic tool-calling loop with selective de-anonymization — Model invokes commands via structured LanguageModelToolPart; extension de-anonymizes only at execution time inside the host, keeping secrets off the LM network boundary.
-
Bidirectional token mapping — Consistent tokens across multi-turn conversations via persistent TokenManager, with system-context instructions preventing unwanted token reformatting.
-
Longest-first regex matching — O(log n) overlap detection prevents double-anonymization while maintaining pattern priority.
Challenges & Learnings
No response
Contact Information
kevincncaplescu@gmail.com - https://www.linkedin.com/in/kevin-cpl
Country/Region
United Kingdom
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This issue is a project submission rather than a scoped change, and it does not name a target file, test, or requested modification. Review the linked repository and its README first; a contributor would need a separate task with a defined outcome before implementation can begin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, tailwindcss, typescript, vite, vscode, webpack
- Domain
- devtools, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100