Tool overview
What is a Dev Toolkit?
A dev toolkit bundles everyday utilities—semver parsing, chmod conversion, Docker Compose transforms, and list/JSON helpers—in one place.
Why use this Dev Toolkit?
Handle common CLI-adjacent chores in the browser when you need a quick transform without opening a terminal session.
Key Features
Semver, chmod, Docker Compose, list↔JSON helpers, mode switching, and fully local processing.
How to Use
Follow these steps to get accurate results from the tool interface above.
- Select a mode: Semver, Chmod, Docker Compose, List → JSON, JSON → List, or Columns → JSON.
- Paste input on the left — clipboard detection may suggest Semver, Chmod, or Docker when the shape matches.
- For Semver, use major.minor.patch with optional -prerelease and +build.
- For Chmod, paste 755 or rwxr-xr-x (conversion is bidirectional).
- For Docker Compose, paste a command starting with docker run including the image name.
- For list modes, use one item per line or a JSON array; for Columns → JSON include a header row.
- Copy structured output into scripts, Compose files, docs, or JSON Formatter.
Dev Toolkit — Complete Guide & Modes
Authoritative walkthrough: all six modes, when to use each, docker run → Compose limits, list/JSON pitfalls, fixes, and best practices — aligned with the toolkit above.
What Dev Toolkit does
Dev Toolkit packs six focused transforms into one IDE-style pane. Paste input on the left, choose a mode, and copy structured output on the right. Clipboard heuristics can suggest Semver, Chmod, or Docker modes when the paste shape is obvious.
What you get
- semver-parse — major/minor/patch, prerelease, build metadata
- chmod-convert — octal ↔ symbolic (755 ↔ rwxr-xr-x)
- docker-compose — docker run → Compose services YAML snippet
- list-to-json — newline list → JSON string array
- json-to-list — JSON array → newline list
- columns-to-json — header CSV rows → JSON object array
Use this toolkit when
- You need a quick semver breakdown for release notes or CI gates
- You are translating permissions between octal docs and ls -l style
- You want a first-pass Compose file from a working docker run
- You are cleaning pasted lists into JSON for configs or mocks
Modes overview — pick the right transform
Choose the mode that matches your input shape. Wrong mode is the most common failure.
Dev Toolkit modes
| Mode | Input | Output | Best for |
|---|---|---|---|
| Semver | 1.2.3, v1.2.3-rc.1+build | Fields + normalized version | Release metadata, compare components |
| Chmod | 755 or rwxr-xr-x | The other representation | Docs, Dockerfiles, shared hosting |
| Docker Compose | docker run … image | services: YAML | Migrating one-off containers |
| List → JSON | One item per line | ["a","b"] | Allowlists, tag arrays |
| JSON → List | ["a","b"] | Newline items | Diffing, shell loops |
| Columns → JSON | header,row CSV | [{…},{…}] | Small tabular pastes to objects |
Step-by-step: select mode, paste, copy
Mode first, then paste — or paste and accept a clipboard suggestion when offered.
- Select the mode tab that matches your task (Semver, Chmod, Docker Compose, or a list transform).
- Paste input on the left. For Docker, start with docker run; for Columns → JSON, include a header row.
- Read the right pane (and any detail blocks for Semver/Chmod).
- Copy output into Compose files, docs, CI, or JSON Formatter for further edits.
- If you see an error, check the mode-specific fix guides below — do not switch modes blindly without reshaping input.
Mode: Semver parse
Parses optional leading v, then major.minor.patch with optional -prerelease and +build metadata per a practical SemVer subset.
When to use
- Extract components for changelogs or feature flags
- Normalize v1.0.0 vs 1.0.0 before comparison tables
- Confirm prerelease/build strings before tagging
Common mistakes
- Two-part versions (1.2) fail — need major.minor.patch
- Ranges (^1.2.3, ~1.0) are not versions — strip range operators first
- Maven/CalVer strings may not match this pattern
Mode: Chmod convert
Converts 3- or 4-digit octal (optional 0o prefix on symbolic path via digits) to rwx triplets, or symbolic rwxr-xr-x back to three octal digits. Detection: all-digit octal → symbolic; otherwise symbolic → octal.
When to use
- Translate Dockerfile chmod 755 examples into symbolic form for docs
- Decode ls -l permission strings into octal for scripts
Common mistakes
- Sticky/setuid high bits: 4-digit octal is accepted toward symbolic, but symbolic→octal emits three digits only
- Symbolic must be exactly nine characters of r/w/x/- in three groups
- Do not paste ls -l owner/group/name columns — permissions only
Mode: Docker Compose from docker run
Tokenizes a docker run command and maps -e/--env, -p/--publish, -v/--volume, and --name into a Compose services snippet with image.
When to use
- Turn a working one-liner into a checked-in Compose starter
- Document local dependencies for teammates
Mapped flags
- -e / --env → environment list
- -p / --publish → ports list
- -v / --volume → volumes list
- --name → service key (default service)
Common mistakes
- Input must start with docker run
- Many flags are ignored (networks, restart, --rm, devices, gpus) — add them manually in Compose
- Image must be a non-flag token; missing image throws
- Complex shell quoting may need cleanup before paste
Mode: List ↔ JSON and columns → JSON
Three list-oriented modes cover the usual paste shapes between shells, JSON, and tiny CSV tables.
List → JSON
Splits on newlines, trims, drops blanks, emits a pretty-printed JSON string array. Use for allowlists and enum-like configs.
JSON → List
Requires a JSON array; joins elements with newlines via String(). Objects become [object Object] — stringify deliberately upstream if needed.
Columns → JSON
First line = comma-separated headers; following lines = values. Emits an array of objects. This is a simple split on commas — not a full RFC 4180 CSV parser. For quoted commas or large files, preview in CSV Viewer first, then use a dedicated JSON ↔ CSV tool.
Use case: parse a release version
CI printed v2.4.0-rc.3+exp.sha.5114f85 and you need components for a release checklist.
How Dev Toolkit solves it
- Select Semver mode (or paste and accept the Semver clipboard hint).
- Paste the version string.
- Copy major/minor/patch and prerelease into the checklist; use Normalized for tags without the build metadata if required.
You avoid hand-splitting prerelease vs build and mis-tagging the release.
Use case: migrate docker run to Compose
A README only documents docker run -p 8080:80 -e NODE_ENV=production --name web nginx:alpine. You want Compose for local multi-service work.
How Dev Toolkit solves it
- Select Docker Compose mode.
- Paste the full docker run line.
- Copy the services YAML into docker-compose.yml.
- Manually add networks, restart policies, and depends_on as needed.
You get a valid starter service block without rewriting ports/env/volumes by hand.
Use case: clean a pasted list to JSON
A teammate pasted emails or feature flags as messy lines; you need a JSON array for config.
How Dev Toolkit solves it
- Select List → JSON.
- Paste one value per line; blank lines are dropped.
- Copy the JSON array into your config or through JSON Formatter.
- Use JSON → List later if you need to diff in a text editor.
Clean round-trip between editor lists and JSON configs.
Fix: invalid semver
Symptoms: “Invalid semver — expected major.minor.patch”.
Why it happens
Input is not three numeric core segments, or includes range/operator syntax the parser rejects.
Diagnose
Trim the string. Ensure the shape is MAJOR.MINOR.PATCH with optional -pre and +build only.
Fixes
- Change 1.2 → 1.2.0 if that matches intent.
- Remove ^, ~, >= and spaces from range expressions; parse a single concrete version.
- Drop surrounding quotes or git describe suffixes that are not SemVer build metadata.
Fix: docker run flags not mapped
Symptoms: Compose output missing networks, restart, or GPU settings; or errors about docker run / image.
Why it happens
The converter intentionally maps a subset of flags. Unmapped flags are skipped; malformed commands fail fast.
Diagnose
Confirm the line starts with docker run and ends with a detectable image token. List which flags you relied on beyond -e/-p/-v/--name.
Fixes
- Fix the command prefix and image name first.
- Add unmapped options manually under the generated service.
- Simplify exotic quoting, then re-run the conversion.
Treat output as a scaffold, not a full Compose migration of every docker run feature.
Common mistakes
- Using Columns → JSON on semicolon CSV or quoted commas — use CSV Viewer + JSON ↔ CSV instead
- Feeding JSON → List a non-array object
- Expecting chmod sticky bits to round-trip perfectly through symbolic → octal
- Assuming Docker mode preserves --rm, --network, or healthchecks
- Parsing semver ranges as single versions
Dev Toolkit best practices
- Pick the mode before pasting large blobs so you do not mis-transform data
- After Docker conversion, open the YAML in a Compose-aware editor and fill gaps
- Validate Semver output against your registry’s tag rules before cutting a release
- For tabular data with quotes, prefer CSV Viewer over Columns → JSON
- Keep secrets out of docker run -e pastes destined for tickets or git
Frequently Asked Questions
Expandable answers for common debugging bottlenecks and data privacy questions.
Related tools
Explore other related utilities that complement this tool.
Official Documentation & References
Authoritative specifications and platform documentation for this utility.