Tag-Based Programming for Automation Direct CLICK PLCs.
Project description
ClickNick
Tag-Based Programming for Automation Direct CLICK PLCs.
ClickNick lets you program using nicknames instead of raw memory addresses. It provides autocomplete that appears over CLICK instruction dialogs, plus standalone editors that sync with your project.
| Standard CLICK | ClickNick | |
|---|---|---|
| Ladder Logic Editor | Type addresses C123 |
✅ Autocomplete nicknames |
| Address Editing | One-by-one in app | ✅ Bulk edit, multi-window, search/replace |
| Tag Organization | Flat list | ✅ Color named blocks + tree outline (hierarchy & arrays) |
| DataView | Input raw addresses, limited reordering | ✅ Autocomplete, add entire grouped structures and blocks, drag and drop reordering |
| Price | Free (bundled) | Free (open source) |
| Best For | Simple projects | Complex projects, productivity |
Why ClickNick?
CLICK PLCs were my first PLC experience, but remembering addresses became painful. Other platforms autocomplete—why not CLICK? ClickNick adds the modern tools I wish I'd had.
Features at a Glance
- ✨ Nickname Autocomplete – Type
Valve5instead ofC123, with smart filters and hover tooltips - 🛠️ Modern Address Editor – Bulk edit with search/replace, color-coded blocks, multi-window support
- 📑 Tag Browser – Tree view with automatic hierarchy and array grouping
- 📊 Dataview Editor – Tabbed interface, nickname lookup, unlimited reordering
- 🔌 Connectivity – CSV import and live ODBC database support
Beta Disclaimer – This is beta software. Use at your own risk and always back up .ckp files.
Prerequisites
- OS: Windows 10 or 11
- CLICK Software: v2.60–v3.80 (download here)
- ODBC Drivers: Microsoft Access Database Engine (install link) – only needed for live DB sync; CSV import works without drivers
- Python: 3.11+ (only if using pip; uv manages Python automatically)
Quick Start
Option 1: uv (recommended)
uvx clicknick@latest # Try it without installing
uv tool install clicknick # Install for offline use, upgrade with `uv tool upgrade clicknick`
clicknick # Run (command line or Start Menu)
New to uv? See installation instructions.
Option 2: pip
pip install clicknick
python -m clicknick
Detailed Features
✨ Nickname Autocomplete
How it works: An autocomplete dropdown appears over CLICK instruction dialogs. Start typing a nickname and select from the filtered list—the address is inserted automatically.
Skip the addresses – Select Valve5 instead of typing C123
Flexible filters – Prefix, partial match/contains, or abbreviation (e.g., Motor Speed ↔ Mtr_Spd)
Hover tooltips – View address comments at a glance
Exclusion filters – Hide system or internal addresses (e.g., SC/SD, __private__)
🛠️ Modern Address Editor
Multi-window – Edit different address sections simultaneously
Bulk editing – Edit before saving, copy/paste multiple cells, live duplicate detection and validation
Search & Replace (Ctrl+F / Ctrl+R) – With Find in Selection toggle
Custom blocks – Drag to create color-coded groups for organization and quick navigation
[!NOTE]
Nicknames edited in the Address Editor appear immediately in autocomplete.
Existing ladder logic refreshes after editing via the built-in Address Picker (Ctrl+T) or reopening the project.
See issue https://github.com/ssweber/clicknick/issues/36
⚠️ Search & Replace Behavior
Replace affects all visible columns. Hidden columns (Initial Value, Retentive) are only modified if you make them visible first. Use "Find in Selection" to limit scope.
📑 Tag Browser
Navigate large projects – See all your nicknames in an organized tree view
Spot patterns – Arrays and related items grouped automatically
Hierarchy: Single underscores create levels. SupplyTank_Pump_Status becomes:
SupplyTank
└── Pump
└── Status
Arrays: Trailing numbers auto-group. Alm1_id, Alm1_value, Alm2_id, Alm2_value becomes:
Alm[1-2]
1
├── id
└── value
2
├── id
└── value
One-click access – Double-click any item to edit.
📊 Dataview Editor
Project integration – Loads all DataViews (.cdv files) from your CLICK project in tab-interface
Nickname lookup – Add addresses by typing nicknames instead of raw addresses
Drag-and-drop reordering – Rearrange rows freely with cut/paste support
Flexible row limit – No hard 100-row limit while organizing; overflow rows shown in grey (excluded from save)
Navigator integration – Double-click nicknames or entire structures from the Outline/Blocks panel to insert
🔌 Connectivity
- CSV nickname import – No drivers needed. Import from any spreadsheet
- Live ODBC database connection – Direct, real-time access to CLICK project database
Block Tag Specification (Advanced)
Note: The Address Editor provides buttons to create and manage blocks. This section documents the underlying format for power users.
Add tags in the Comment field to create visual blocks:
Syntax:
<BlockName>- Opening tag for a range</BlockName>- Closing tag for a range<BlockName />- Self-closing tag for a singular point<BlockName bg="#color">- Adds background color
Colors: Use HEX codes or keywords: Red, Pink, Purple, Deep Purple, Indigo, Blue, Light Blue, Cyan, Teal, Green, Light Green, Lime, Yellow, Amber, Orange, Deep Orange, Brown, Blue Grey
Example: <Alm Bits bg="Red"> ... </Alm Bits>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clicknick-0.12.2.tar.gz.
File metadata
- Download URL: clicknick-0.12.2.tar.gz
- Upload date:
- Size: 227.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
882772ebdd2a1c940f830b5bf16ea8fa8eed7b55d33d724d271db7961ea1ac05
|
|
| MD5 |
b90c4c15c79684afc3600022c8602069
|
|
| BLAKE2b-256 |
08ee2b9ec6836afe8c16734a62c5d0a15189e4b3275d20fc5a075bb1dd682107
|
Provenance
The following attestation bundles were made for clicknick-0.12.2.tar.gz:
Publisher:
publish.yml on ssweber/clicknick
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clicknick-0.12.2.tar.gz -
Subject digest:
882772ebdd2a1c940f830b5bf16ea8fa8eed7b55d33d724d271db7961ea1ac05 - Sigstore transparency entry: 787599589
- Sigstore integration time:
-
Permalink:
ssweber/clicknick@a75ba736454528417504878b9f3bff518645d077 -
Branch / Tag:
refs/tags/v0.12.2 - Owner: https://github.com/ssweber
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a75ba736454528417504878b9f3bff518645d077 -
Trigger Event:
release
-
Statement type:
File details
Details for the file clicknick-0.12.2-py3-none-any.whl.
File metadata
- Download URL: clicknick-0.12.2-py3-none-any.whl
- Upload date:
- Size: 157.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3d5a62a5a36efcf919370d63ec0e7e1d19d40c9275330e941537137de1b58d0
|
|
| MD5 |
cb93142d2b1ded66dd1d956e861d2ac1
|
|
| BLAKE2b-256 |
df767b95f218a61c152d14163b971f68b99b655714c83afcfb4256dfedc24f08
|
Provenance
The following attestation bundles were made for clicknick-0.12.2-py3-none-any.whl:
Publisher:
publish.yml on ssweber/clicknick
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clicknick-0.12.2-py3-none-any.whl -
Subject digest:
a3d5a62a5a36efcf919370d63ec0e7e1d19d40c9275330e941537137de1b58d0 - Sigstore transparency entry: 787599594
- Sigstore integration time:
-
Permalink:
ssweber/clicknick@a75ba736454528417504878b9f3bff518645d077 -
Branch / Tag:
refs/tags/v0.12.2 - Owner: https://github.com/ssweber
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a75ba736454528417504878b9f3bff518645d077 -
Trigger Event:
release
-
Statement type: