Smart .NET SDK manager for Termux (Android ARM64) + Copilot CLI session encryption tool
bash <(curl -sL https://github.com/sbay-dev/dotnet-termux/releases/latest/download/dotnet-termux.sh) installHandles .NET SDK installation on Termux with automatic TLS alignment patching (required for Android Bionic linker on ARM64).
Commands:
| Command | Description |
|---|---|
install [version] |
Install/upgrade .NET SDK (default: latest) |
patch |
Apply patchelf fix for Bionic TLS alignment |
status |
Show current .NET SDK status |
workload [name] |
Install .NET workloads |
run [args...] |
Run dotnet with correct environment |
Features:
- 🔍 Auto-detects environment (native Termux vs proot)
- 🔧 Auto-patches binary after install (patchelf + glibc loader)
- 📊 Progress bar during download
- ❌ Smart error messages with fix suggestions
- 🔄 Works as wrapper for all
dotnetcommands
A .NET console app + MCP server for encrypting, exporting, and importing GitHub Copilot CLI sessions.
CLI Usage:
# List sessions
dotnet run -- list
# Scan a session
dotnet run -- scan <session-id>
# Export session (encrypted)
dotnet run -- export <session-id> [output.zip]
# Import session
dotnet run -- import <path.zip> [target-copilot-root]
# Publish to GitHub
dotnet run -- publish <archive.zip> <owner> <repo>
# Run as MCP server
dotnet run -- --mcpMCP Tools (for Copilot CLI integration):
session_list— List all local sessionssession_scan— Get session detailssession_export— Export encrypted session archivesession_import— Import and decrypt sessionsession_publish— Publish archive to GitHub release
Encryption:
- Uses AES-256 via EntityCrypt.Core
- Session ID serves as encryption key
- Sensitive data (code, events, files) encrypted at rest in SQLite
- Non-sensitive metadata (timestamps, types) stored in plaintext
- Termux (Android ARM64) or proot-distro Ubuntu
- .NET SDK 10.0+
patchelf(for native Termux)ghCLI (for GitHub publishing)
.copilot/
├── config.json → ConfigRecord (tokens skipped)
├── session-state/
│ └── {uuid}/
│ ├── workspace.yaml → SessionRecord
│ ├── events.jsonl → EventRecord[]
│ ├── files/ → FileRecord[]
│ ├── checkpoints/ → FileRecord[]
│ └── research/ → FileRecord[]
Export format: ZIP containing:
manifest.json— Unencrypted metadatasession.db— SQLite with AES-256 encrypted fields
MIT