microsoft / microsoft/agentsleague

Project: Creative Apps - promptHider

Open
#92 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

🎨 Creative Apps
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.