{"id":48001978,"url":"https://github.com/statiolake/dockim","last_synced_at":"2026-04-04T12:23:50.793Z","repository":{"id":220307364,"uuid":"749064806","full_name":"statiolake/dockim","owner":"statiolake","description":"Docker falls in love with Neovim.","archived":false,"fork":false,"pushed_at":"2026-03-20T12:14:08.000Z","size":435,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-21T01:53:54.942Z","etag":null,"topics":["devcontainer","docker","neovim"],"latest_commit_sha":null,"homepage":"https://statiolake.github.io/dockim/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/statiolake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-27T13:41:34.000Z","updated_at":"2026-03-20T12:14:11.000Z","dependencies_parsed_at":"2024-02-01T11:44:39.909Z","dependency_job_id":"0ea19e1b-25e6-4d36-aefc-2fbfc34fec3c","html_url":"https://github.com/statiolake/dockim","commit_stats":null,"previous_names":["statiolake/dockim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/statiolake/dockim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statiolake%2Fdockim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statiolake%2Fdockim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statiolake%2Fdockim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statiolake%2Fdockim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/statiolake","download_url":"https://codeload.github.com/statiolake/dockim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statiolake%2Fdockim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31399808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devcontainer","docker","neovim"],"created_at":"2026-04-04T12:23:50.719Z","updated_at":"2026-04-04T12:23:50.783Z","avatar_url":"https://github.com/statiolake.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Note: this tool is under active development. All documentations, including this README and the book, are written by AI and may not be accurate for now. Please refer to the source code for the actual behavior of the tool.\n\n---\n\n# 🐋 Dockim\n\nA modern CLI tool for managing Dev Containers with ease. Dockim simplifies your development workflow by providing intuitive commands for container management and Neovim integration.\n\n## ✨ Features\n\n- 🚀 **Quick Container Management** - Start, stop, and build dev containers effortlessly\n- 📝 **Neovim Integration** - Launch Neovim with remote UI support\n- 🛠 **Project Initialization** - Generate dev container templates instantly\n- 🔧 **Flexible Configuration** - Support for custom builds and source compilation\n\n## 📦 Installation\n\n### Prerequisites\n\n- [Docker](https://docs.docker.com/get-docker/) or Docker Desktop\n- [Dev Container CLI](https://github.com/devcontainers/cli): `npm install -g @devcontainers/cli`\n\n### Install Dockim\n\n```bash\n# From source (requires Rust)\ncargo install --git https://github.com/statiolake/dockim\n\n# Or build locally\ngit clone https://github.com/statiolake/dockim\ncd dockim\ncargo install --path .\n```\n\n## 🚀 Quick Start\n\n### 1. Initialize a new project\n\n```bash\n# Create dev container configuration\ndockim init\n```\n\nThis creates:\n\n- `.devcontainer/devcontainer.json`\n- `.devcontainer/compose.yml`\n- `.devcontainer/Dockerfile`\n\n### 2. Start your development environment\n\n```bash\n# Build and start the container\ndockim build\n\n# Start the container (if already built)\ndockim up\n```\n\n### 3. Launch Neovim\n\n```bash\n# Launch Neovim with auto-port selection\ndockim neovim\n# Alias: dockim v\n\n# Launch with specific port\ndockim neovim --host-port 8080\n\n# Launch directly in container (no remote UI)\ndockim neovim --no-remote-ui\n```\n\n## 📋 Commands\n\n### Project Setup\n\n#### `dockim init`\n\nCreates a new dev container configuration in the current directory.\n\n```bash\ndockim init\n```\n\nGenerates:\n\n- `.devcontainer/devcontainer.json` - Dev container configuration\n- `.devcontainer/compose.yml` - Docker Compose configuration\n- `.devcontainer/Dockerfile` - Custom Docker image definition\n\n#### `dockim init-config`\n\nCreates a default configuration file for dockim.\n\n```bash\ndockim init-config\n```\n\nCreates `~/.config/dockim/config.toml` with default settings that you can customize.\n\n### Container Management\n\n#### `dockim build`\n\nBuilds the dev container with all dependencies.\n\n```bash\n# Standard build\ndockim build\n\n# Rebuild from scratch\ndockim build --rebuild\n\n# Build without Docker cache\ndockim build --no-cache\n\n# Build Neovim from source instead of using prebuilt binaries\ndockim build --neovim-from-source\n```\n\n#### `dockim up`\n\nStarts the dev container (builds if necessary).\n\n```bash\ndockim up\n\n# Force rebuild and start\ndockim up --rebuild\n```\n\n#### `dockim stop` / `dockim down`\n\nStops or removes the dev container.\n\n```bash\n# Stop container (keeps it for later restart)\ndockim stop\n\n# Remove container completely\ndockim down\n```\n\n### Development Tools\n\n#### `dockim neovim` (alias: `dockim v`)\n\nLaunches Neovim with remote UI support.\n\n```bash\n# Launch with automatic port selection\ndockim v\n\n# Launch with specific host port\ndockim v --host-port 8080\n\n# Launch directly in container (no remote UI)\ndockim v --no-remote-ui\n```\n\nThe remote UI mode starts a Neovim server inside the container and connects to it from your host system using the configured client.\n\n#### `dockim shell` / `dockim bash`\n\nOpens an interactive shell in the container.\n\n```bash\n# Default shell (zsh)\ndockim shell\ndockim sh  # alias\n\n# Bash specifically\ndockim bash\n```\n\n#### `dockim exec`\n\nExecutes a command in the container.\n\n```bash\n# Run a single command\ndockim exec ls -la\n\n# Run with arguments\ndockim exec git status\n```\n\n### Port Management\n\n#### `dockim port add`\n\nSets up port forwarding from host to container.\n\n```bash\n# Forward host:8080 to container:8080\ndockim port add 8080\n\n# Forward host:8080 to container:3000\ndockim port add 8080:3000\n```\n\n#### `dockim port ls`\n\nLists active port forwards.\n\n```bash\ndockim port ls\n```\n\n#### `dockim port rm`\n\nRemoves port forwarding.\n\n```bash\n# Remove specific port forward\ndockim port rm 8080\n\n# Remove all port forwards\ndockim port rm --all\n```\n\n## ⚙️ Configuration\n\nConfiguration is stored in `~/.config/dockim/config.toml`. Create a default one with:\n\n```bash\ndockim init-config\n```\n\n### Configuration Options\n\n#### `shell`\n\nDefault shell to use in containers.\n\n```toml\nshell = \"/usr/bin/bash\"\n```\n\n#### `neovim_version`\n\nNeovim version to install when using `--neovim-from-source`.\n\n```toml\nneovim_version = \"v0.11.0\"\n```\n\n#### `dotfiles_repository_name`\n\nName of your dotfiles repository for automatic setup.\n\n```toml\ndotfiles_repository_name = \"dotfiles\"\n```\n\n#### `dotfiles_install_command`\n\nCommand to run after cloning your dotfiles.\n\n```toml\ndotfiles_install_command = \"echo 'no dotfiles install command configured'\"\n```\n\n#### Remote Neovim Settings\n\nControl how Neovim remote UI works:\n\n```toml\n[remote]\n# Run client in background (don't block terminal)\nbackground = false\n\n# Enable clipboard synchronization between host and container\nuse_clipboard_server = true\n\n# Command to run Neovim client\n# {server} is replaced with \"localhost:PORT\"\nargs = [\"nvim\", \"--server\", \"{server}\", \"--remote-ui\"]\n```\n\nThe `{server}` placeholder gets replaced with the actual server address (e.g., `localhost:52341`) when launching the remote client.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Commit your changes: `git commit -m 'Add amazing feature'`\n4. Push to the branch: `git push origin feature/amazing-feature`\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Dev Containers](https://containers.dev/) for the container specification\n- [Neovim](https://neovim.io/) for the amazing editor\n- The Rust community for excellent tooling\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003eHappy coding! 🎉\u003c/strong\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatiolake%2Fdockim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatiolake%2Fdockim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatiolake%2Fdockim/lists"}