NextIteration.Snipdeck.Importer 1.1.0

dotnet tool install --global NextIteration.Snipdeck.Importer --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local NextIteration.Snipdeck.Importer --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=NextIteration.Snipdeck.Importer&version=1.1.0
                    
nuke :add-package NextIteration.Snipdeck.Importer --version 1.1.0
                    

snipdeck-importer

NuGet NuGet downloads CI status .NET 10 Licence: Apache-2.0

A small cross-platform console tool that imports command snippets from other tools into a Snipdeck store. The first supported source is SnipCommand; the design leaves room for more sources as subcommands later.

It is shipped and versioned independently of the desktop app (it is a .NET tool), and targets net10.0, so it builds and runs on Windows, Linux and macOS — handy for bulk-prepping an import on a non-Windows box before opening Snipdeck.

Install

dotnet tool install -g NextIteration.Snipdeck.Importer

The package id is NextIteration.Snipdeck.Importer; the installed command is snipdeck-importer.

Or run it straight from the repo without installing:

dotnet run --project tools/Snipdeck.Importer -- snipcommand <path>

Usage

snipdeck-importer snipcommand <path> [options]

<path> is a SnipCommand export. Despite SnipCommand's .db extension, the export is JSON — point the importer straight at it.

Option Default Description
--store <path> the desktop app's store Target Snipdeck store file.
--write off Apply the changes. Without it, the importer only previews (dry-run).
--cli <name> Force every imported snip into this CLI, overriding auto-detection.
--into <name> Fallback CLI for snips whose CLI could not be confidently auto-detected.
--allow-duplicates off Import snips even if one with the same title and command already exists.
--no-share-parameters off Keep every parameter on its snip instead of promoting duplicates to CLI-shared parameters.

Dry-run first

By default the importer parses the source, prints the planned additions grouped by the CLI each snip would land in, and exits without touching the store:

snipdeck-importer snipcommand snipcommand.db

Add --write once the preview looks right:

snipdeck-importer snipcommand snipcommand.db --write

What it does

  • Groups by CLI. SnipCommand stores a flat list; Snipdeck organises snips under a CLI. The CLI is auto-suggested from the first whitespace-delimited token of each command (mpt-app orders listmpt-app), peeling off launcher wrappers such as sudo / npx. Use --cli to force one CLI for everything, or --into as a fallback for commands the importer couldn't classify confidently.
  • Translates parameters. SnipCommand's inline [sc_choice …] and [sc_variable …] markup becomes Snipdeck {token} placeholders plus a structured parameter list (Choice with options, or Text), with a sensible default carried across. Variable names containing spaces or punctuation are slugified into legal token names.
  • Shares duplicated parameters. When a parameter recurs across two or more snips in the same CLI, it is promoted to a CLI-scoped shared parameter and removed from the individual snips (which then inherit it by token name). Choice parameters match on their option set (order-independent) — names need not match, the most common name wins, and snips that used a different name have their template token rewritten to it. Text parameters match by name, and the most common default value wins (including an empty default). Single-use parameters stay on their snip. Pass --no-share-parameters to disable.
  • Carries metadata. Title, description, tags and favourite flag come across; usage counts and last-used timestamps are preserved when present. Trashed entries are skipped.
  • Merges safely. With --write the importer backs the existing store up first (honouring the desktop app's retention policy), mints fresh identifiers, creates any missing CLIs on demand, and skips snips that already exist by (title, command) unless --allow-duplicates is given. The atomic store write means a running desktop instance can't be corrupted — but it won't see the changes until it next reloads, so restart Snipdeck after importing.

Building and testing

dotnet build tools/Snipdeck.Importer
dotnet test  tools/Snipdeck.Importer.Tests
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.0 102 7/1/2026
1.0.4 176 6/10/2026
1.0.3 107 6/8/2026
1.0.2 114 6/8/2026