Secure, Memory-Only Encryption for Code Execution
Project description
ENC Client Documentation
Part of the ENC Ecosystem
The ENC Client (enc-cli) is your secure gateway to the ENC ecosystem. It allows you to create, manage, and edit encrypted projects from your local machine, seamlessly integrating them with your favorite tools.
🚀 Installation
Prerequisites
- Python 3.8+
pipsshfs(Optional, required for mounting projects)Note: If mounting fails, please reinstall sshfs manually:
brew install --cask macfuse && brew install sshfsor restore from backup.
Installation
The recommended way to install ENC Client is via pip:
pip install enc-cli
After installing, run the setup command to handle dependencies (like sshfs) and environment configuration:
enc install
This will:
- Check for
sshfsand attempt to install it if missing. - Configure your shell
PATHif needed. - Guide you to the next step (
enc config init).
To verify installation:
enc --version
⚙️ Configuration
Before you can login, you need to tell the CLI where your server is located.
1. Initialize Config
Run the interactive configuration wizard:
enc config init
You will be asked for:
- Server URL: The address of your ENC Server (e.g.,
http://myserver.com:2222). - Username: Your assigned username.
- SSH Key Path: Path to your private SSH key (e.g.,
~/.ssh/id_ed25519).
To view your current configuration:
enc show
2. SSH Key Setup
For a seamless experience, we recommend using an SSH agent or specifying your key in the config.
Using SSH Agent:
ssh-add -K ~/.ssh/my_enc_key
Using Config File:
If you set the key path during enc config init, the CLI will automatically use it for all connections.
🔐 Workflow Guide
1. Login
Start your secure session. This establishes the encrypted tunnel.
enc login
2. Managing Projects
Create a New Project:
enc project init <project-name>
# You will be prompted to set a unique password for this project vault.
List Projects:
enc project list
# Shows all your projects and their mount status.
Remove a Project:
enc project remove <project-name>
# WARNING: This permanently deletes the encrypted vault from the server.
3. Editing Code (Mounting)
This is the magic of ENC. You can mount a remote encrypted project to a local folder.
mkdir ./my-work-folder
enc project mount <project-name> ./my-work-folder
# Enter project password when prompted
Once mounted:
- Open
./my-work-folderin VS Code, Vim, or any editor. - Files you see are plaintext.
- Files written to disk are instantly encrypted and saved on the server.
4. Logout
When you are done, logout to secure your session.
enc logout
Safety Feature: This command automatically detects and force-unmounts any active project connections to ensure no plaintext access remains.
🛡️ Client-Side Monitoring Protocols
The ENC Client employs active monitoring to ensure session security and clean resource management.
1. Project Integrity Monitor
- Function: Continuously verifies that your local mount points are active and valid.
- Behavior:
- Checks status every 3 seconds.
- If a mount point becomes invalid (e.g., directory deleted, connection dropped), it automatically triggers a forced unmount cleanup to remove stale handles.
2. Session Watchdog
- Function: Ties your ENC session to your active terminal window.
- Behavior:
- Runs as a background process monitoring the Parent PID (your shell).
- Auto-Logout: If you close your terminal window or the shell process terminates, the watchdog immediately triggers a full
enc logout. - Signal Handling: Captures termination signals (
SIGINT,SIGTERM,SIGHUP) to ensure sessions close gracefully even during unexpected shutdowns.
🛠 Command Reference
| Command | Description |
|---|---|
enc config init |
Setup or update local configuration. |
enc login |
Authenticate with the server. |
enc logout |
Close session and unmount all projects. |
enc user create |
(Admin) Create a new user account. |
enc project init |
Create a new encrypted project vault. |
enc project list |
View available projects. |
enc project mount |
Mount a remote project locally via SSHFS. |
enc project unmount |
Unmount a specific project. |
enc status |
Check current session validity. |
🗑 Uninstallation
To remove the CLI and its virtual environment:
./uninstall.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file enc_cli-0.1.5.tar.gz.
File metadata
- Download URL: enc_cli-0.1.5.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1b779797326dd4aab1db48bc90146c72c814d476168d00a1e443c8d84650653
|
|
| MD5 |
ab8fcca53e783d3c37b57db1ae9e260d
|
|
| BLAKE2b-256 |
80357671e133d1fabfa29705fdb9f666a596c858b0870981b0605b87574a2934
|
File details
Details for the file enc_cli-0.1.5-py3-none-any.whl.
File metadata
- Download URL: enc_cli-0.1.5-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a60d66ea4e2939e567676ad187766ff5271217ae5e8a59636546a368154cd8e
|
|
| MD5 |
bcfc5318cfcb92efcd2c495da1f0fb5d
|
|
| BLAKE2b-256 |
902b880f5257015797601805e7384ba54bee89370498021262e85ff8f01f97e4
|