Envault

io.github.DinanathDashPublished by GitHub account DinanathDashv1.12.0Updated Oct 24, 2026

Secure secret management with a Human-In-The-Loop (HITL) interceptor for agent mutations.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Envault's local MCP server lets an AI coding assistant pull and push secrets from an Envault vault, with a human-in-the-loop check on mutations.

What you can do
Pull and push secure environment secrets between an Envault vault and the assistant's workspace, as described for AI coding assistants such as Claude Desktop, Cursor and RooCode/Cline. Secret mutations are routed through a human-in-the-loop interceptor, so changes are meant to be confirmed by a person. Secrets are organized into project workspaces with role-based access (owner, editor, viewer). The README lists no individual tools, so exact operations are not documented here.
When to use it
Useful when you keep environment variables and other secrets in Envault and want a coding assistant to read or update them without copying values by hand, while keeping a human approval step on changes.
Requirements
Runs as a local process via the npm package @dinanathdash/envault-mcp-server (Node.js). Requires the ENVAULT_BASE_URL environment variable and an ENVAULT_TOKEN secret generated in Envault Account Settings under Security, plus network access to the Envault service.
Before you install
The server handles real secrets and asks for an ENVAULT_TOKEN credential; anyone with that token may reach your vault data. It can push changes to secrets, so review the human-in-the-loop confirmations carefully. Secret values pass through the assistant's context and to the Envault service.

Installation

In SourceWeft

  1. Open Envault in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Envault

Envault is a secure, modern vault application built with Next.js, Supabase, and Tailwind CSS. It provides a robust authentication system and a sleek user interface for storing and managing sensitive information.

Features

  • Bank-Grade Security: AES-256-GCM encryption with master/data key hierarchy and automatic key rotation.
  • Project Workspaces: Organize secrets into distinct projects for better management.
  • Semantic Routing: Clean, GitHub-style URLs (/[username]/[project-slug]) for easy sharing and navigation.
  • Team Collaboration: Secure project sharing with strict Role-Based Access Control:
    • Owner: Full administrative control (Rename, Delete, Manage Team).
    • Editor: Active contributor (Read/Write secrets, request to Share).
    • Viewer: Read-only access to variables.
  • Secure Authentication: Powered by Supabase Auth for robust user management, including Passkey support for passwordless, biometric login.
  • Modern UI/UX: Built with Tailwind CSS, Shadcn UI, and Framer Motion for a premium experience.
  • Interactive 3D Elements: High-performance 3D visuals powered by React Three Fiber.
  • Keyboard First: Navigate efficiently with fully customizable, conflict-free hotkeys.
  • Responsive Design: Fully responsive layout that works seamlessly on desktop and mobile.
  • Dark Mode Support: Built-in support for light and dark themes.
  • CLI Support: Manage your secrets directly from your terminal, featuring automatic non-blocking background update checks.
  • Native Vercel Integration: Link Vercel projects, map environments, and sync secrets directly into Vercel env storage for serverless runtime compatibility.
  • Real-time System Status: Monitor system health, active incidents, and historical uptime with a dedicated status page.
  • Dedicated Support Page: Integrated support features directly within the app to help users manage troubleshooting options efficiently.
  • Comprehensive Documentation: Integrated docs site with guides, API reference, and CLI documentation.

CLI

Envault natively supports the Model Context Protocol (MCP), so AI coding assistants like Claude Desktop, Cursor, and RooCode/Cline can pull and push your secure environments effortlessly.

bash
# Automatically configure your AI clients (Global & Local Workspaces)envault mcp install
# Or install strictly for the current workspaceenvault mcp install --local

Installation

macOS & Linux (Universal)

bash
curl -fsSL https://raw.githubusercontent.com/DinanathDash/Envault/main/install.sh | sh

macOS (Homebrew)

bash
brew tap DinanathDash/envaultbrew install --formula envault

Homebrew cask installs are deprecated. If you installed via cask, migrate with:

bash
brew uninstall --cask dinanathdash/envault/envaultbrew install --formula envault

For more details, check out the CLI Documentation.

Local Testing

Envault local development now uses portless with HTTPS hostnames.

bash
npm install -g portless

To use the Envault CLI with the local development server, set the ENVAULT_CLI_URL environment variable:

bash
export ENVAULT_CLI_URL="https://envault.localhost:1355/api/cli"envault login

For one-command envault run local app startup, prefer hosted API fetch-first behavior by not setting ENVAULT_CLI_URL/ENVAULT_BASE_URL.

Security Architecture

Envault uses a hybrid encryption model to ensure maximum security:

  1. Master Key: A 32-byte key stored in environment variables, used solely to encrypt/decrypt Data Keys.
  2. Data Keys: Unique keys for encrypting actual data. These are stored encrypted in the database.
  3. Key Rotation: Data keys can be rotated. The active key is cached in Redis for high performance without compromising security.
  4. AES-256-GCM: Industry-standard authenticated encryption for all secrets.

Tech Stack

Getting Started

Follow these steps to get the project running locally.

Prerequisites

  • Node.js 18+ installed
  • A Supabase project set up

Installation

  1. Clone the repository

    bash
    git clone https://github.com/dinanathdash/envault.gitcd envault
  2. Install dependencies

    bash
    npm install# oryarn install# orpnpm install# orbun install
  3. Environment Setup

    Copy the example environment file:

    bash
    cp .env.example .env.local

    Open .env.local and add your Supabase credentials:

    env
    NEXT_PUBLIC_SUPABASE_URL=your-project-urlNEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
    # Generate a secure key: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"ENCRYPTION_KEY=your-64-char-hex-key
    SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
    UPSTASH_REDIS_REST_URL=your-upstash-urlUPSTASH_REDIS_REST_TOKEN=your-upstash-token
    # Used for securely signing and verifying frontend API mutations (POST, PUT, DELETE, PATCH)NEXT_PUBLIC_API_SIGNATURE_SALT=your-secure-random-hmac-secret
  4. Run the development server

    bash
    npm run dev

    Open https://envault.localhost:1355 with your browser to see the result.

Optional: Native Vercel Integration Setup

If you plan to use native Vercel sync (recommended for Vercel serverless runtimes), add these variables:

env
VERCEL_CLIENT_ID=your_vercel_oauth_client_idVERCEL_CLIENT_SECRET=your_vercel_oauth_client_secretVERCEL_REDIRECT_URI=https://your-domain.com/api/integrations/vercel/callbackVERCEL_WEBHOOK_SECRET=your_vercel_webhook_signing_secretNEXT_PUBLIC_VERCEL_INTEGRATION_INSTALL_URL=https://vercel.com/<team-or-user>/~/integrations/envault

Use production URLs in production. Do not use ngrok or localhost callback URLs outside local development.

  1. Test Email Configuration (Optional)

    To verify that your Resend API configuration is working, you can send a test email to yourself:

    bash
    npm run test:email -- [email protected]

Monorepo Setup Map

This repository contains multiple publishable/runtime components. Use this map when cloning and contributing.

FolderPurposeInstallCommon Commands
./Main Next.js appnpm installnpm run dev, npm run build, npm run lint, npm run test:all
cli-go/Go CLI (envault)go mod downloadgo test ./..., go build ./...
src/lib/sdk/npm SDK package (@dinanathdash/envault-sdk)npm installnpm run typecheck, npm run build
mcp-server/npm MCP package (@dinanathdash/envault-mcp-server)npm installnpm run check, npm start
cli-wrapper/npm wrapper for CLI install/bootstrapnpm installnode install.js

First-time contributor flow

  1. Clone and install root dependencies:
bash
git clone https://github.com/dinanathdash/envault.gitcd envaultnpm install
  1. Copy env file and configure required keys:
bash
cp .env.example .env.local
  1. Install package-local dependencies for publishable subpackages:
bash
cd src/lib/sdk && npm installcd ../../.. && cd mcp-server && npm installcd ..
  1. Validate everything in one pass:
bash
npm run lintnpm run test:allnpm run build

Package Publishing + Workflows

npm packages

  • SDK: @dinanathdash/envault-sdk (source: src/lib/sdk/)
  • MCP: @dinanathdash/envault-mcp-server (source: mcp-server/)

GitHub Actions workflows

  • CLI release workflow: .github/workflows/publish.yml
  • SDK publish workflow: .github/workflows/publish-sdk.yml
  • MCP publish workflow: .github/workflows/publish-mcp.yml

Each package versions independently via semantic-release when changes occur in its own folder:

  • CLI tags: v<version>
  • SDK tags: sdk-v<version>
  • MCP tags: mcp-v<version>

This keeps SDK and MCP release streams decoupled from CLI version bumps.

Local prepublish checks

bash
npm run sdk:checknpm run mcp:check

Manual publish commands

bash
npm run sdk:publishnpm run mcp:publish

Version and Update Commands

Use these commands so users can quickly verify what version they are on and update safely.

CLI (envault)

Check installed CLI version:

bash
envault --version

Update via Homebrew formula:

bash
brew updatebrew untap dinanathdash/envault || truebrew tap dinanathdash/envaultbrew upgrade --formula envault

SDK (@dinanathdash/envault-sdk)

Check installed and latest SDK versions:

bash
npm ls @dinanathdash/envault-sdknpm view @dinanathdash/envault-sdk version

Update SDK (preferred via Envault CLI):

bash
envault sdk update

Update SDK (npm fallback):

bash
npm install @dinanathdash/envault-sdk@latest

Runtime behavior:

  • SDK prints a warning when a newer SDK version exists.
  • SDK blocks execution when below minimum supported version configured by server.

MCP (@dinanathdash/envault-mcp-server)

Check installed MCP version (standalone MCP package installs):

bash
envault-mcp-server --version

Check MCP update availability (standalone MCP package installs):

bash
envault-mcp-server --check-update

Update MCP integration (preferred via Envault CLI):

bash
envault mcp update

Update MCP globally (npm fallback for standalone installs):

bash
npm install -g @dinanathdash/envault-mcp-server@latest

License

Copyright (c) 2026 Dinanath Dash. All Rights Reserved.

The repository root source code is provided strictly for transparency, security auditing, and education. This is not open-source software.

You may inspect and analyze the code for security purposes. You may not execute, compile, run, deploy, copy, modify, fork, redistribute, sublicense, or provide any service using proprietary repository code without prior explicit written permission.

License scope exception: mcp-server/ and src/lib/sdk/ are distributed under MIT licenses in their respective directories.

See the LICENSE file for the complete legal terms.

Source: README.md at commit 4450183

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.12.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.