{
  "id": "meshcore-cli",
  "name": "meshcore-cli",
  "kind": "client",
  "status": "active",
  "maturity": "stable",
  "description": "Official command-line interface to MeshCore companion radio nodes. Connects over BLE, TCP or serial and provides interactive chat, contact management, channel messaging, node configuration, telemetry, region management and serial repeater mode. Installable via pip/pipx as meshcore-cli (alias meshcli).",
  "maintainers": [
    {
      "name": "meshcore-dev",
      "url": "https://github.com/meshcore-dev"
    }
  ],
  "repository": "https://github.com/meshcore-dev/meshcore-cli",
  "license": "MIT",
  "languages": [
    "python"
  ],
  "platforms": [
    "linux",
    "macos",
    "windows",
    "nixos"
  ],
  "interfaces": [
    "cli"
  ],
  "connections": [
    "ble",
    "serial",
    "tcp"
  ],
  "node_roles": [
    "companion",
    "repeater",
    "room-server"
  ],
  "capabilities": [
    "messaging",
    "contacts",
    "channels",
    "node-configuration",
    "monitoring",
    "telemetry",
    "firmware-update"
  ],
  "install": [
    {
      "type": "pypi",
      "package": "meshcore-cli",
      "url": "https://pypi.org/project/meshcore-cli/",
      "command": "pipx install meshcore-cli"
    },
    {
      "type": "nixos",
      "url": "https://github.com/meshcore-dev/meshcore-cli",
      "command": "nix run github:meshcore-dev/meshcore-cli#meshcore-cli"
    },
    {
      "type": "source",
      "url": "https://github.com/meshcore-dev/meshcore-cli"
    }
  ],
  "popularity": {
    "githubStars": 170,
    "githubForks": 51,
    "githubWatchers": 10,
    "githubOpenIssues": 10,
    "githubContributors": 13,
    "lastChecked": "2026-07-21",
    "releaseDownloads": 0,
    "latestReleaseDownloads": 0
  },
  "verification": {
    "sourceAvailable": true,
    "releasesAvailable": true,
    "signedReleases": false,
    "ciBuilds": false,
    "hasDocumentation": true,
    "lastChecked": "2026-07-21",
    "notes": [
      "Official MeshCore CLI tool from meshcore-dev.",
      "Interactive and scripted command modes; serial repeater mode with -r flag.",
      "Depends on the meshcore_py (fdlamotte/meshcore_py) Python package.",
      "Available on PyPI as meshcore-cli; also provides meshcli alias."
    ]
  },
  "tags": [
    "cli",
    "official",
    "python"
  ],
  "last_reviewed": "2026-07-03",
  "source": {
    "path": "data/software/meshcore-cli/software.yaml",
    "updatedAt": "2026-07-21T08:04:18Z"
  },
  "latest_version": "1.5.0",
  "released": "2026-03-10",
  "releases": [
    {
      "version": "v1.5.0",
      "name": "v1.5.0",
      "datetime": "2026-03-10T20:52:57Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.5.0",
      "prerelease": false,
      "notes": "This version supports multibyte path",
      "notesHtml": "<p>This version supports multibyte path</p>\n"
    },
    {
      "version": "v1.4.1",
      "name": "v1.4.1",
      "datetime": "2026-02-10T14:38:00Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.4.1",
      "prerelease": false,
      "notes": "Now depends on meshcore_py v2.2.8, which solves lots of com issues ...",
      "notesHtml": "<p>Now depends on meshcore_py v2.2.8, which solves lots of com issues ...</p>\n"
    },
    {
      "version": "v1.4.0",
      "name": "v1.4.0",
      "datetime": "2026-02-08T12:43:18Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.4.0",
      "prerelease": false,
      "notes": "This release validates latest developments of 1.3 branch, mainly repeater mode (with `region (up/down)load` and scripting)\r\n\r\nrepeater mode is courtesy of @pescheck-bram\r\n\r\neasy install using pipx: `pipx install meshcore-cli` (or upgrade)",
      "notesHtml": "<p>This release validates latest developments of 1.3 branch, mainly repeater mode (with <code>region (up/down)load</code> and scripting)</p>\n<p>repeater mode is courtesy of @pescheck-bram</p>\n<p>easy install using pipx: <code>pipx install meshcore-cli</code> (or upgrade)</p>\n"
    },
    {
      "version": "v1.3.19",
      "name": "v1.3.19",
      "datetime": "2026-02-04T13:28:07Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.3.19",
      "prerelease": false,
      "notes": "There has been lots of new features since 1.3.2 (there will probably be a 1.4 soon)\r\n\r\n* get status command\r\n* autoadd config\r\n* anon requests (repeaters/owner/clock)\r\n* repeater mode\r\n* timestamps\r\n* advert echoes",
      "notesHtml": "<p>There has been lots of new features since 1.3.2 (there will probably be a 1.4 soon)</p>\n<ul>\n<li>get status command</li>\n<li>autoadd config</li>\n<li>anon requests (repeaters/owner/clock)</li>\n<li>repeater mode</li>\n<li>timestamps</li>\n<li>advert echoes</li>\n</ul>\n"
    },
    {
      "version": "v1.3.2",
      "name": "v1.3.2",
      "datetime": "2025-11-14T16:53:20Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.3.2",
      "prerelease": false,
      "notes": "Another bugfix release:\r\n\r\n* set commands on contacts were shadowed by abbreviated sleep command \"s\"\r\n* handling multiline messages in channel_echoes (still issues with emojis that take more than 1 char)\r\n* improve doc on manual_add_contact and auto_update_contacts",
      "notesHtml": "<p>Another bugfix release:</p>\n<ul>\n<li>set commands on contacts were shadowed by abbreviated sleep command \"s\"</li>\n<li>handling multiline messages in channel_echoes (still issues with emojis that take more than 1 char)</li>\n<li>improve doc on manual_add_contact and auto_update_contacts</li>\n</ul>\n"
    },
    {
      "version": "v1.3.1",
      "name": "v1.3.1",
      "datetime": "2025-11-13T12:18:55Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.3.1",
      "prerelease": false,
      "notes": "Bugfix release after v1.3.0\r\n\r\n* node_discover would fail if contact was not in device\r\n* added more verbosity in lc\r\n* added contact_key and contact_type commands (for apply_to)\r\n* path command can now be chained (for apply_to)",
      "notesHtml": "<p>Bugfix release after v1.3.0</p>\n<ul>\n<li>node_discover would fail if contact was not in device</li>\n<li>added more verbosity in lc</li>\n<li>added contact_key and contact_type commands (for apply_to)</li>\n<li>path command can now be chained (for apply_to)</li>\n</ul>\n"
    },
    {
      "version": "v1.3.0",
      "name": "v1.3.0",
      "datetime": "2025-11-12T12:09:04Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.3.0",
      "prerelease": false,
      "notes": "Let's try to have some reference release for mccli\r\n\r\n* `apply_to` command to execute same command on a group of contacts\r\n* initial support for scopes\r\n* rx_log and channel echoes\r\n* `node_discover`\r\n* `req_status` and `req_telemetry` now use binary command version\r\n* update in documentation\r\n* ? prefix to show help on some commands",
      "notesHtml": "<p>Let's try to have some reference release for mccli</p>\n<ul>\n<li><code>apply_to</code> command to execute same command on a group of contacts</li>\n<li>initial support for scopes</li>\n<li>rx_log and channel echoes</li>\n<li><code>node_discover</code></li>\n<li><code>req_status</code> and <code>req_telemetry</code> now use binary command version</li>\n<li>update in documentation</li>\n<li>? prefix to show help on some commands</li>\n</ul>\n"
    },
    {
      "version": "v1.2.0",
      "name": "v1.2.0",
      "datetime": "2025-10-31T12:44:13Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.2.0",
      "prerelease": false,
      "notes": "There has been some major improvements in latest 1.1.x versions and I think it's time for 1.2\r\n\r\nNewest features:\r\n* channel support\r\n* enhanced login (prompts for login in chat mode and saves password, can be forget using `fp`\r\n* BLE cx issues fixes (and no more ugly stacktrace but a retry instead)\r\n* traces support (can also do trace without param for a contact, in this case path to the contact is used)",
      "notesHtml": "<p>There has been some major improvements in latest 1.1.x versions and I think it's time for 1.2</p>\n<p>Newest features:</p>\n<ul>\n<li>channel support</li>\n<li>enhanced login (prompts for login in chat mode and saves password, can be forget using <code>fp</code></li>\n<li>BLE cx issues fixes (and no more ugly stacktrace but a retry instead)</li>\n<li>traces support (can also do trace without param for a contact, in this case path to the contact is used)</li>\n</ul>\n"
    },
    {
      "version": "v1.1.0",
      "name": "v1.1.0",
      "datetime": "2025-07-13T15:21:52Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.1.0",
      "prerelease": false,
      "notes": "Decided to draft 1.1 with the upcoming of sensor nodes, this one should evolve a lot but 1.1 is the one with sensors support ...\r\n\r\nMain improvements in 1.1 are :\r\n* better connection handling\r\n* better contact management (there is now a pending list when manual_add_contacts is set to True)\r\n* initial support for sensors\r\n* possibility to display incoming adverts and path changes\r\n\r\nAnd some improvements that were in 1.0.x branch but not advertised\r\n* `get fstats` command\r\n* get/set chanel information",
      "notesHtml": "<p>Decided to draft 1.1 with the upcoming of sensor nodes, this one should evolve a lot but 1.1 is the one with sensors support ...</p>\n<p>Main improvements in 1.1 are :</p>\n<ul>\n<li>better connection handling</li>\n<li>better contact management (there is now a pending list when manual_add_contacts is set to True)</li>\n<li>initial support for sensors</li>\n<li>possibility to display incoming adverts and path changes</li>\n</ul>\n<p>And some improvements that were in 1.0.x branch but not advertised</p>\n<ul>\n<li><code>get fstats</code> command</li>\n<li>get/set chanel information</li>\n</ul>\n"
    },
    {
      "version": "v1.0.0",
      "name": "v1.0.0",
      "datetime": "2025-05-29T16:24:11Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.0.0",
      "prerelease": false,
      "notes": "This is v1.0 of meshcore-cli.\r\n\r\nNo changes since 0.8.4, but lots of changes from the start four month ago !\r\n\r\nRead https://digitalsober.wordpress.com/2025/05/29/the-odyssey-of-meshcore-cli/ for the history of this software that bridges my passion for Linux and my involvment in MeshCore.\r\n\r\nThanks to all MeshCore contributors and users, you've all contributed to this ... And special thanks to Awol with its refactoring of the lib that unleashed the second stage of the rocket !",
      "notesHtml": "<p>This is v1.0 of meshcore-cli.</p>\n<p>No changes since 0.8.4, but lots of changes from the start four month ago !</p>\n<p>Read <a href=\"https://digitalsober.wordpress.com/2025/05/29/the-odyssey-of-meshcore-cli/\" target=\"_blank\" rel=\"noopener noreferrer\">https://digitalsober.wordpress.com/2025/05/29/the-odyssey-of-meshcore-cli/</a> for the history of this software that bridges my passion for Linux and my involvment in MeshCore.</p>\n<p>Thanks to all MeshCore contributors and users, you've all contributed to this ... And special thanks to Awol with its refactoring of the lib that unleashed the second stage of the rocket !</p>\n"
    },
    {
      "version": "v1.0.0rc1",
      "name": "v1.0.0rc1",
      "datetime": "2025-05-01T09:41:02Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v1.0.0rc1",
      "prerelease": false,
      "notes": "This is the first release candidate for meshcore-cli v 1.0\r\n\r\nv1 will be tagged when no changes have been made in the github for a week (not counting this last version number change ;) )",
      "notesHtml": "<p>This is the first release candidate for meshcore-cli v 1.0</p>\n<p>v1 will be tagged when no changes have been made in the github for a week (not counting this last version number change ;) )</p>\n"
    },
    {
      "version": "v0.6.20",
      "name": "v0.6.20",
      "datetime": "2025-04-26T15:30:45Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v0.6.20",
      "prerelease": false,
      "notes": "This is the last update to the 0.6 line as I plan to change the interactive mode behavior in 0.7",
      "notesHtml": "<p>This is the last update to the 0.6 line as I plan to change the interactive mode behavior in 0.7</p>\n"
    },
    {
      "version": "v0.4.0",
      "name": "v0.4.0",
      "datetime": "2025-04-14T12:30:17Z",
      "url": "https://github.com/meshcore-dev/meshcore-cli/releases/tag/v0.4.0",
      "prerelease": false,
      "notes": "Latest version that relies on protocol v1",
      "notesHtml": "<p>Latest version that relies on protocol v1</p>\n"
    }
  ],
  "changelogSource": "github",
  "changelogUpdatedAt": "2026-07-05T17:14:35.988Z"
}
