TALXIS.CLI
1.7.0
Prefix Reserved
See the version list below for details.
dotnet tool install --global TALXIS.CLI --version 1.7.0
dotnet new tool-manifest
dotnet tool install --local TALXIS.CLI --version 1.7.0
#tool dotnet:?package=TALXIS.CLI&version=1.7.0
nuke :add-package TALXIS.CLI --version 1.7.0
TALXIS CLI (txc)
This project is currently in a development phase and not ready for production use. While we actively use these tools internally, our aim is to share and collaborate with the broader community to refine and enhance their capabilities. We are in the process of gradually open-sourcing the code, removing internal dependencies to make it universally applicable. At this stage, it serves as a source of inspiration and a basis for collaboration. We welcome feedback, suggestions, and contributions through pull requests.
If you wish to use this project for your team, please contact us at hello@networg.com for a personalized onboarding experience and customization to meet your specific needs.
MCP Server Support:
You can also use this CLI as a Model Context Protocol (MCP) server by installing the related .NET tool txc-mcp.
This enables integration with tools and workflows that support the MCP standard.
For setup and usage instructions, see TALXIS.CLI.MCP.
TALXIS CLI (txc) is a modular, extensible .NET global tool for Power Platform and Dataverse development. It's built around a code-first philosophy: scaffold and manage components locally in your repo — fast, offline and coding agent-friendly — then synchronize to a live environment.
This makes txc ideal for coding agents and CI/CD pipelines where hitting a live environment on every operation is too slow and too fragile. Work locally, build, sync.
Table of Contents
- Installation
- Identity, Connections & Profiles
- Example Usage
- Local Development & Debugging
- Versioning & Release
- Collaboration
Detailed guides: Schema Management · Changeset Staging · Architecture · Profiles & Auth · Output Contract
Installation
Install the CLI as a .NET global tool:
dotnet tool install --global TALXIS.CLI
Update to the latest version:
dotnet tool update --global TALXIS.CLI
dotnet new update
Running dotnet new update ensures that template packages used by the CLI are updated to their latest versions.
After installation, use the CLI via the txc command in any terminal.
Identity, Connections & Profiles
txc decouples who you are (credentials) from where you target (connections) and exposes the combination as a named profile. Every command that touches a live environment takes exactly one context flag — --profile <name>.
Quickstart for most developers:
txc config profile create --url https://contoso.crm4.dynamics.com/
Drop in the Dataverse environment URL, sign in in the browser, and txc creates and selects the profile for you.
For explicit credential / connection / profile steps, repository pinning, or headless / CI setup, see docs/profiles-and-authentication.md.
Example Usage
txc runs on modern .NET across macOS, Linux, and Windows — including Dataverse Package Deployer and Configuration Migration Tool (CMT), which traditionally require Windows.
txc commands fall into two layers:
| Layer | Purpose | Speed | Commands |
|---|---|---|---|
| Workspace | Scaffold & manage components locally in your repo | Instant (local) | txc workspace … |
| Environment | Synchronize with and operate on a live Dataverse environment | Minutes | txc env …, txc data … |
The recommended workflow: Use txc workspace to create and modify components locally (entities, attributes, solution structures), then deploy to the environment with txc env. This is dramatically faster than round-tripping every change through a live org — especially for coding agents that make dozens of changes per session.
The environment layer is organised into three planes:
| Plane | What it covers | Commands |
|---|---|---|
| Control | Environment settings, feature toggles, governance | txc env setting … |
| Application | Solutions, packages, deployments, schema management | txc env sln …, txc env pkg …, txc env deploy …, txc env entity … |
| Data | Records, queries, bulk operations, CMT import/export | txc env data …, txc data … |
Workspace — Local-First Development
The fastest way to build Dataverse components. Everything happens locally in your repo — no environment round-trips, no publish waits. Ideal for coding agents that need to scaffold dozens of components in a session.
# Explore available component types and their parameters
txc workspace component type list
txc workspace component explain pp-entity
# Scaffold a Dataverse entity — instant, local, no environment needed
txc workspace component create pp-entity \
--param Behavior=New \
--param PublisherPrefix=tom \
--param LogicalName=location \
--param DisplayName=Location \
--param DisplayNamePlural=Locations
# When ready, deploy the solution to a live environment
txc env sln import ./out/MySolution_managed.zip
Component scaffolding relies on the TALXIS/tools-devkit-templates repository, where all component types, metadata, and definitions are maintained.
The environment commands below assume you have an active profile (see above). Pass --profile <name> to override for a single call.
Control Plane
Manage environment-level settings exposed by the Power Platform admin API — feature toggles, Copilot flags, IP restrictions, and more.
List environment management settings:
txc env setting list --filter powerApps
Enable Power Apps Code Apps:
txc env setting update --name powerApps_AllowCodeApps --value true
Application Plane
Deploy, inspect, and manage solutions and packages in the target environment.
# Deploy a package straight from NuGet, inspect the result
txc env pkg import TALXIS.Controls.FileExplorer.Package
txc env deploy show --package-name TALXIS.Controls.FileExplorer.Package
# Import a solution, target a different environment for one call
txc env sln import ./Solutions/MySolution_managed.zip --profile customer-b-prod
# Uninstall a package cleanly
txc env pkg uninstall TALXIS.Controls.FileExplorer.Package --yes
Data Plane
Query, create, update, and bulk-operate on Dataverse records — all cross-platform on modern .NET.
Three query languages — pick the one you think in:
# OData — familiar, filterable, composable
txc env data query odata accounts --select "name,revenue" --filter "revenue gt 1000000" --top 10
# FetchXML — full aggregation, linked entities, fiscal date filters
txc env data query fetchxml '<fetch top="5"><entity name="contact"><attribute name="fullname"/></entity></fetch>'
# T-SQL — because sometimes you just want SELECT ... WHERE
txc env data query sql "SELECT fullname, emailaddress1 FROM contact WHERE statecode = 0" --top 20
Record CRUD, file columns, relationships, bulk:
txc env data record create --entity account --data '{"name":"Contoso Ltd","revenue":5000000}' --apply
txc env data record upload-file --entity account $ID --column logo --file ./logo.png --apply
txc env data record associate $ID --entity account \
--target $TARGET_ID --target-entity contact --relationship accountleads_association --apply
txc env data bulk upsert --entity contact --file ./contacts.json # CreateMultiple/UpsertMultiple under the hood
Configuration Migration Tool (CMT) — import, export, convert. Runs natively on macOS/Linux (no Windows VM needed). Exports to a folder by default so you can commit data directly to your repo:
# Export → folder → edit → import round-trip
txc data pkg export --schema ./data_schema.xml --output ./data-package --export-files
txc data pkg import ./data-package
# Advanced tuning options not exposed by PAC CLI or CMT GUI:
txc data pkg import ./data-package \
--batch-mode # ExecuteMultiple batching (vs one-by-one) \
--batch-size 500 # records per batch (default: 200) \
--connection-count 4 # parallel service channels \
--override-safety-checks # skip duplicate detection \
--prefetch-limit 100 # pre-cache record lookups
txc data pkg convert --input export.xlsx --output data.xml
See docs/configuration-migration.md for the full deep-dive into CMT internals, deduplication logic, and tuning strategies.
Application Plane — Schema Management
Define your Dataverse schema from the terminal — entities, columns, relationships, option sets. Every mutating command supports --apply (execute now) or --stage (queue for batch). See docs/schema-management.md.
# Spin up a new entity with a money column in seconds
txc env entity create --name tom_project \
--display-name "Project" --plural-name "Projects" \
--ownership user --apply
txc env entity attribute create --entity tom_project \
--name tom_budget --type money --display-name "Budget" --apply
# Or stage everything and apply in one optimised batch
txc env entity create --name tom_invoice \
--display-name "Invoice" --plural-name "Invoices" --stage
txc env entity attribute create --entity tom_invoice \
--name tom_amount --type money --display-name "Amount" --stage
txc env entity attribute create --entity tom_invoice \
--name tom_duedate --type datetime --display-name "Due Date" --stage
txc env changeset status # review what's queued
txc env changeset apply --strategy batch # one batch, one publish
Changeset staging batches entity creation via the CreateEntities SDK action and consolidates all publishes into a single PublishXml call — dramatically faster than sequential operations. See docs/changeset-staging.md.
Run txc --help or txc <command> --help for the full command reference.
Local Development & Debugging
Clone the repository and restore dependencies:
git clone <repo-url>
cd tools-cli
dotnet restore
Build the solution:
dotnet build
Run the CLI directly:
dotnet run --project src/TALXIS.CLI -- workspace explain
Versioning & Release
- Versioning is managed in
Directory.Build.props(Microsoft-style versioning). - Releases are published to NuGet.org via GitHub Actions.
Collaboration
We welcome collaboration! For feedback, suggestions, or contributions, please submit issues or pull requests.
For onboarding or customization, contact us at hello@networg.com.
| Product | Versions 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.21.0 | 246 | 8/10/2026 |
| 1.20.0 | 270 | 6/29/2026 |
| 1.19.1 | 150 | 6/29/2026 |
| 1.19.0 | 135 | 6/29/2026 |
| 1.18.0 | 118 | 6/28/2026 |
| 1.17.2 | 147 | 6/27/2026 |
| 1.17.1 | 176 | 6/3/2026 |
| 1.17.0 | 141 | 5/26/2026 |
| 1.16.0 | 128 | 5/14/2026 |
| 1.15.0 | 116 | 5/14/2026 |
| 1.14.2 | 134 | 5/4/2026 |
| 1.14.1 | 116 | 5/4/2026 |
| 1.13.0 | 119 | 5/1/2026 |
| 1.12.0 | 117 | 4/29/2026 |
| 1.11.0 | 130 | 4/28/2026 |
| 1.10.0 | 109 | 4/28/2026 |
| 1.9.0 | 123 | 4/27/2026 |
| 1.8.0 | 128 | 4/26/2026 |
| 1.7.0 | 129 | 4/25/2026 |
| 1.6.0 | 130 | 4/24/2026 |
1.7.0:
What's New in v1.7.0
A major release bringing Configuration Migration Tool support, full Dataverse data operations, and significant quality-of-life improvements.
Configuration Migration Tool (CMT)
- Data packages — txc data package export and txc data package import with batch modes, file column handling, and safety overrides
- Entity management — create, update, and delete entities and attributes (16 attribute types supported) directly from the CLI
- Relationships and option sets — manage entity relationships and global option sets without leaving the terminal
- Changeset staging — queue multiple schema changes with --stage, then apply them all at once with txc env changeset apply using batch, transaction, or bulk strategies for dramatically faster operations
Dataverse Data Operations
- Query your data — SQL (txc env data query sql), FetchXML, and OData queries with automatic pagination
- Record operations — get, create, update, delete individual records or work in bulk with bulk create/update/upsert
- File columns — download and upload file/image column data with chunked transfers
- Relationship records — associate and disassociate N:N relationship records
- Entity introspection — list entities and describe their columns with txc env entity list/describe
Unified Environment Settings
- One command for all settings — txc env setting list and txc env setting update work across all four Power Platform settings APIs transparently
- No need to know which backend stores which setting — the CLI handles routing automatically
Authentication and Token Handling
- Tokens no longer expire mid-session — automatic refresh with proactive renewal before expiration
- Service principal tokens persist across CLI invocations — no more re-authenticating every time
- Token diagnostics — txc config auth show <alias> --check-token to inspect token health
- Smarter profile setup — txc config profile create reuses existing connections and auto-populates environment metadata
Production Safety
- Destructive commands are blocked against production environments by default
- Pass --allow-production explicitly when you intend to modify production — an extra safety net on top of --yes confirmation
- Production environments detected automatically by type, URL, and name patterns
Consistent Output
- All commands now follow a unified output format — predictable JSON when piped, human-readable tables in the terminal
- Global --format flag replaces per-command --json flags
- Clean stdout — diagnostic and log output goes to stderr, so piping and scripting just works
Fixes
- Fixed ConnectedOrgVersion returning hardcoded 9.0.0.0 with token-provider auth
- Fixed exit codes for validation errors (now correctly returns exit code 2)
- Fixed MSAL token cache for headless CI environments
- Numerous XrmShim compatibility fixes