Skip to content

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

tsdev logo

tsdev

Portable, hardened TypeScript development container with TMUX IDE, Model Context Protocol (MCP) AI agent tooling, pnpm, vtsls, Biome, Vitest, mobile WebTTY, and dotfiles bootstrap.

Build License: Apache-2.0 OR MIT OpenSSF Scorecard Engines: Docker or Podman Architectures: amd64, arm64


Contents


Quick start

Clone this repository and spin up a complete, hardened TypeScript terminal IDE in seconds:

git clone https://github.com/sebastienrousseau/tsdev.git
cd tsdev
make up          # builds the image and launches the 4-pane TMUX IDE

Remote & Mobile Web Access

Access your development environment from any iPad, tablet, or web browser:

make web         # starts dark-themed WebTTY at http://localhost:7681
make web-auth    # starts WebTTY with password authentication
make mosh        # starts roaming UDP shell that survives cellular IP handovers
make doctor      # runs system diagnostics (container engine, tools, linters, clipboard)

When you are done:

make trash       # removes container image and build cache cleanly

The suite

tsdev is the TypeScript member of the langdev suite:

Repository Language Stack Built-In Tooling Status
langdev Core Foundation Hardened runtime, TMUX IDE, MCP server, ai-pack, WebTTY v0.0.4
tsdev TypeScript 5.8+ Node 22, pnpm, vtsls, biome, eslint, vitest, tsx v0.0.1
jsdev JavaScript ES2024+ Node 22, npm, pnpm, biome, eslint, prettier v0.0.1
pythondev Python 3.12+ uv, ruff, mypy, pytest, debugpy, Pyright v0.0.4
rustdev Rust 1.85+ rustup, rust-analyzer, clippy, cargo-audit, sccache v0.0.4
godev Go 1.24+ gopls, golangci-lint, delve, Go toolchain v0.0.4
javadev Java 21+ OpenJDK 21, Maven, Gradle, JDTLS v0.0.4
kotlindev Kotlin 2.1+ kotlinc, OpenJDK 21, Gradle, Maven, KLS v0.0.4
swiftdev Swift 6.0+ Swift toolchain, SourceKit-LSP, swift-format v0.0.4

2026 Developer & AI Capabilities

Every container in the suite includes native, pre-configured tooling for modern AI-assisted engineering:

1. 4-Pane TMUX IDE (Prefix + i)

  • Left Panel (20% W): Intelligent project explorer (langdev-explorer, yazi) with visual Git branch status.
  • Center-Top (56% W, 70% H): Editor pane loaded with Neovim and language LSP (vtsls + biome).
  • Center-Bottom (56% W, 30% H): Integrated bash terminal with pnpm and Node 22 on PATH.
  • Right Panel (24% W): Dedicated AI Agent terminal (Claude Code, Agy, Aider, Ollama).

2. Parallel AI Task Worktrees (muxtree / Prefix + m)

  • Automates Git worktrees paired with dedicated TMUX sessions (muxtree new <branch>, muxtree list, muxtree switch).
  • Allows human developers and autonomous AI agents to work on separate features concurrently in isolated branches without workspace collisions.

3. Model Context Protocol (MCP) Server (/usr/local/bin/mcp-server)

  • Standard JSON-RPC 2.0 stdio MCP server exposing container workspace tools (list_files, read_file, git_status, git_diff, run_tests, run_command).
  • Pre-configured common/mcp.json configuration template for Claude Code, Cursor, and Aider.

Architecture & Design

tsdev separates the stable runtime from your personal configuration:

  1. Hardened Base: Alpine Linux with unprivileged non-root user (dev:1000), read-only root filesystem, dropped Linux capabilities (cap-drop ALL), and no-new-privileges.
  2. User Dotfiles: Cloned and applied at container build time from your chezmoi dotfiles repository.
  3. TypeScript Toolchain: Pre-installed and verified into /opt/langdev/toolchain.

Security Model

  • Read-Only Root Filesystem: Rootfs is immutable. Ephemeral paths (/tmp, ~/.cache, ~/.local/state) use restricted tmpfs mounts.
  • Dropped Capabilities: All POSIX capabilities are dropped (--cap-drop ALL).
  • No Privilege Escalation: Enforces no-new-privileges:true.
  • Zero Secrets in Image: Environment variables and secrets are mounted at runtime via .env and never baked into layers.

Portability

Builds and runs identically with both Docker and Podman:

# Docker
make build
make up

# Podman
make build ENGINE=podman
make up ENGINE=podman

Development & Lifecycle

make test        # Run BATS test suite with coverage
make lint        # Run hadolint on Containerfile and shellcheck on scripts
make doctor      # Run local diagnostics

License

Licensed under either of:

About

Portable, hardened TypeScript development container with TMUX IDE, MCP AI agent tooling, pnpm, vtsls, Biome, Vitest, mobile WebTTY, and dotfiles bootstrap. πŸš€

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages