Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
98156a9
[Silabs] Fixing the build for the boards which doesn't support the bu…
chirag-silabs May 7, 2026
5ce2d7d
Migration resource monitoring from using SafeAttributePersistence (#7…
tersal May 7, 2026
2ed184b
[NXP] fix random BLE adv issue due tasks execution timing/order (#71883)
Martin-NXP May 7, 2026
2fc30ca
Add wifi scan CLI command and fix NXP wifi scan issue (#71859)
Martin-NXP May 7, 2026
e7a28d4
[restyle] manual ran pre-commit.ci locally to force a restyle (#71957)
andy31415 May 7, 2026
a32f6aa
[CI] suppress error from step that publishes test result to github ac…
Alami-Amine May 7, 2026
a2e3381
[AI Skill] Add "chip-tool-testing" agent skill to teach AI how to use…
soares-sergio May 7, 2026
b3a541a
[Silabs] : Lighting App CRTP refactor (#71752)
Sarthak-Shaha May 7, 2026
ea4ba1d
Move markdown formatting to pre-commit.ci and disable in restyler (#7…
soares-sergio May 7, 2026
6b0daf0
Add GEMINI.md to redirect bot to AGENTS.md (#71965)
soares-sergio May 7, 2026
d1d544b
[ZAP] Update to 2026.05.05-nightly (#71931)
andy31415 May 7, 2026
c4cbcf4
Fix default script path in run_python_test.py (#71967)
soares-sergio May 7, 2026
1b622ea
[CodeDriven conversion] PR#1 Renames and code movement WindowCovering…
AniDashyan May 8, 2026
733955a
Add OpenThread configuration (#71773)
jepenven-silabs May 8, 2026
89ff507
Update default timeout value for OJCW to correct 180s value; Change d…
dparausanu May 8, 2026
b7e95f0
[NFC] trace/display onboarding data, make UriRecord code generic (#71…
OlivierGre May 8, 2026
71bacf5
[Mergify] allow people to `request-backport-sve` and `request-backpor…
andy31415 May 8, 2026
dcdf1da
[crosscompile] use a `debootstrap` + dpkg unpack to create sysroots f…
andy31415 May 8, 2026
1ce0707
[Darwin] Fix use-after-free in MTRDeviceConnectivityMonitor linger ti…
kiel-apple May 8, 2026
66a55d6
[Thread Border Router Management] PR#1 CodeDriven Conversion - Rename…
soares-sergio May 8, 2026
594f8ae
Alchemy Linter (#71568)
khodya May 8, 2026
3387e69
[crosscompile docker] Add armhf (32-bit arm) sysroot to docker images…
andy31415 May 8, 2026
535b6ee
Update the backport: manually set labels. (#71988)
andy31415 May 8, 2026
58112ab
Fix AWS include (#71983)
Sarthak-Shaha May 8, 2026
13373f8
[Code driven clusters] have the ember Accessors named `GetDefault` in…
andy31415 May 8, 2026
8d346b0
[ACL] Add Unit Test to ensure LegacyEncoding for ACL stays valid (#71…
Alami-Amine May 8, 2026
2835334
remove bit-rotten AclCache Code (#71990)
Alami-Amine May 9, 2026
869bc61
[Dynamic Lighting cluster] Add Dynamic Lighting ZAP XML and regenerat…
Yuri-Chenyu May 9, 2026
3243d91
Improve Dockerfile maintainability (#71571)
oxesoft May 9, 2026
cfadc85
[Dynamic Lighting cluster] Regenerate Dynamic Lighting XML from a cle…
Yuri-Chenyu May 9, 2026
234a611
Bump third_party/libdatachannel/repo from `4e4f489` to `c6696d1` (#71…
dependabot[bot] May 11, 2026
ce723b4
Bump third_party/lwip/repo from `5a0007f` to `aab56d2` (#71999)
dependabot[bot] May 11, 2026
e6cb124
Bump third_party/ot-br-posix/repo from `717abf0` to `7c45251` (#71996)
dependabot[bot] May 11, 2026
78e7539
[Silabs] Update toolchain deps for zephyr (#71774)
jepenven-silabs May 11, 2026
ca78a0d
Bump github/codeql-action from 4.35.3 to 4.35.4 (#72000)
dependabot[bot] May 11, 2026
6f1d4a1
Bump third_party/pigweed/repo from `de5b668` to `86f3575` (#71998)
dependabot[bot] May 11, 2026
18b2ebd
Ability to detect if device is commissioned in Python tests (#41604)
asirko-soft May 11, 2026
9267a4e
Don't shadow builtin Python symbols in scripts/* (#71958)
enkiusz May 11, 2026
4225966
[SILABS] Fix zephyr light silabs (#71772)
jepenven-silabs May 11, 2026
4fb0e03
Bugfix: Group iterator release. (#71918)
rcasallas-silabs May 11, 2026
8483009
[Code Driven Cluster] Decouple mode base cluster part 1 (#72001)
arielsz71 May 11, 2026
6af10f2
[CameraAVSM] SDK XML and zap changes for Spec update of new ImageRota…
pidarped May 11, 2026
7afaf1d
ZAP regen (#72012)
andy31415 May 11, 2026
67bc2a8
[Tests] Use exit stack for init/deinit flow in process (#71962)
MarekPikula May 11, 2026
79b07eb
Enforce minimum MTU in BLE connections (#71991)
robszewczyk May 11, 2026
480aeec
[NXP] fix coverity issue (#72004)
Martin-NXP May 12, 2026
4a30df6
[ESP32] support native OpenThread UDPEndpoint (#71973)
Sped0n May 12, 2026
8cc9e63
Groupcast: IANA address corrected. (#71641)
rcasallas-silabs May 12, 2026
cee6c49
Remove nlassert dependency from core SDK code (#71828)
enkiusz May 12, 2026
20fcb76
Add support for linux 32bit builds (#71867)
medinandres May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
194 changes: 194 additions & 0 deletions .agents/skills/chip-tool-testing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
---
name: chip-tool-testing
description:
Guidelines for building Matter examples and chip-tool, and testing examples
using chip-tool.
---

# Testing Matter Examples with Chip-Tool

This skill provides guidelines for building Matter example applications and
`chip-tool`, and using `chip-tool` to commission and interact with the examples
in a simulated environment (like Linux POSIX).

> [!NOTE] While `chip-tool` and examples support multiple platforms, these
> guidelines focus on the Linux/POSIX environment, which is the standard
> environment for agent execution.

## Building from Source

Always build the `chip-tool` and the Matter example application from the same
revision of the repository to ensure compatibility.

### Building chip-tool

Use the build script to build `chip-tool` for Linux:

```bash
source scripts/activate.sh
./scripts/build/build_examples.py --target linux-x64-chip-tool-clang build
```

The binary will be located in `out/linux-x64-chip-tool-clang/chip-tool`.

### Building Examples

Use the build script to build examples (e.g., `all-devices-app`):

```bash
source scripts/activate.sh
./scripts/build/build_examples.py --target linux-x64-all-devices-boringssl build
```

The binary will be located in
`out/linux-x64-all-devices-boringssl/all-devices-app`.

## Testing Guidelines

### Running the Example

Run the example application (usually in a separate terminal or the background):

```bash
./out/linux-x64-all-devices-boringssl/all-devices-app
```

_Note: Use a clean KVS file (by specifying a new, non-existent file path with
`--KVS`) or clear the existing one (by deleting the file) to ensure the
application enters commissioning mode on startup._

### 1. Determine Pairing Credentials

Check the application logs on startup to find the setup PIN code and
discriminator. Example log:

```
[DL] Setup Pin Code: 20202021
[DL] Setup Discriminator: 3840 (0xF00)
```

> [!NOTE] The discriminator value `3840` (0xF00) is the standard default for
> many Matter examples when not explicitly configured.

### 2. Commissioning (Pairing)

Make sure the device is in commissioning mode. If using a persistent storage
(KVS), you may need to use a clean KVS file or clear it to force commissioning
mode on startup. On Linux, the default KVS file is `/tmp/chip_kvs`:

```bash
rm /tmp/chip_kvs
```

> [!NOTE] > **Persistence Testing**: If you are performing a persistence test
> (verifying state across restarts), do NOT delete the KVS file. Reuse the same
> KVS file to preserve stored attributes.

#### Over IP (On-Network)

If the device is already on the same IP network (e.g., running locally on the
same host):

- **With Long Discriminator**:
```bash
chip-tool pairing onnetwork-long <node_id> <setup_pin> <discriminator>
```
- **Without Discriminator** (looks for any commissionable device):
```bash
chip-tool pairing onnetwork <node_id> <setup_pin>
```
- **With Manual Pairing Code or QR Code**:
```bash
chip-tool pairing code <node_id> <pairing_code_or_qrcode>
```
- **Direct IP and Port** (useful if mDNS resolution fails):

```bash
chip-tool pairing already-discovered <node_id> <setup_pin> <device_ip> <device_port>
```

> [!CAUTION] If you encounter attestation failures in simulated
> environments, you may need to add `--bypass-attestation-verifier true` to
> the command. Use this flag ONLY for local simulated testing when you
> explicitly accept the security tradeoff of bypassing device attestation.

### 3. Interacting with Clusters

After successful commissioning, you can use `chip-tool` to interact with data
model clusters.

- **Read Attribute**:

```bash
chip-tool <cluster_name> read <attribute_name> <node_id> <endpoint_id>
```

Example: `chip-tool basicinformation read vendor-id 0x8016 0`

- **Invoke Command**:
```bash
chip-tool <cluster_name> <command_name> [arguments] <node_id> <endpoint_id>
```
Example: `chip-tool onoff toggle 0x8016 1`

## Using Chip-Tool Help

`chip-tool` has a built-in help system that allows you to discover available
clusters and commands. Running any command without all required parameters will
show a help screen.

- **List available clusters**:
```bash
chip-tool
```
- **List available commands/attributes for a cluster**:
```bash
chip-tool basicinformation
```
- **See help for a specific action**:
```bash
chip-tool basicinformation read
```
This will show what attributes can be read from the `basicinformation`
cluster.

This interactive help is useful for exploring the data model and finding the
exact syntax needed.

## Troubleshooting

- **Timeout**: If a command times out, you can increase it with
`--timeout <seconds>`.
- **Configuration Cache**: `chip-tool` caches state in `chip_tool_config.ini`
(often in the current directory or `/tmp`). Deleting this file can resolve
stale configuration issues. You can also specify a custom directory with
`--storage-directory <path>`.

## Reporting Results

When completing a test task using this skill, you should output a structured
report to the user. Since every test may verify different features, do not force
a fixed sequence of steps. Instead, follow these general guidelines for
reporting each item you verified:

For each verified feature, command, or configuration item, provide:

1. **What was verified**: A clear description of the intent (e.g., "Verified
that Endpoint 2 is a child of Endpoint 1").
2. **The command ran**: The exact `chip-tool` or shell command you used.
3. **The proof (logs)**: A snippet of the output or logs that proves the
verification was successful (e.g., the attribute value read or the success
status).

### General Guidelines for Content:

- **Build Process**: Mention which targets were built and if any custom flags
were used.
- **Startup**: Include the command used to run the application, and the
pairing credentials (Setup PIN and Discriminator) found in the logs.
- **Commissioning**: Show the command used and the log snippet confirming
success.
- **Data Model**: If hierarchy or device composition was verified, show the
relevant `Descriptor` reads.
- **Cluster Interaction**: For any attribute read/write or command invocation,
show the command and the response status.
32 changes: 18 additions & 14 deletions .github/.wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ approver
appspot
appwrite
aps
ARD
arg
argc
args
Expand All @@ -80,10 +81,6 @@ armeabi
armino
ARMmbed
armv
ARD
SCL
SDA
VCC
ASAN
asdk
ASR
Expand All @@ -93,8 +90,8 @@ ASYNC
AsyncZeroconfServiceTypes
ATL
ATLs
atomics
atomicity
atomics
att
attId
attr
Expand Down Expand Up @@ -249,6 +246,7 @@ ChlorodibromomethaneConcentrationMeasurement
ChloroformConcentrationMeasurement
chmod
chown
chroot
chrpath
CIPD
CircleCI
Expand Down Expand Up @@ -294,7 +292,6 @@ commissionee
CommissioningFlow
commondatastorage
Compat
compat
CONF
CONFIG
ConfigDescription
Expand Down Expand Up @@ -344,8 +341,8 @@ cstdint
csu
csv
ctl
CTS
ctrl
CTS
ctypes
CurrentHue
CurrentLevel
Expand Down Expand Up @@ -559,9 +556,9 @@ EvalCode
EvalCodeWithName
EvalFrameDefault
EVB
EVKBMIMXRT
EventLogging
evk
EVKBMIMXRT
EVSE
exceptfds
ExchangeContext
Expand Down Expand Up @@ -599,8 +596,10 @@ FFFFFFFFFFFF0102
FFmpeg
Fi
filepath
filesystems
fini
FixedLabel
fixups
flashdebug
FlowMeasurement
FluorideConcentrationMeasurement
Expand All @@ -610,9 +609,9 @@ formatter
formatters
FOTA
framerate
FRDM
FreeRTOS
FreeRTOSConfig
FRDM
FS
fsl
fstab
Expand Down Expand Up @@ -706,7 +705,6 @@ hostname
hotfixes
href
hsm
HSM
HTTPS
Humidistat
HW
Expand Down Expand Up @@ -880,8 +878,8 @@ localhost
LocalizationConfiguration
localstatedir
LockingState
lookups
LogEvent
lookups
loopback
LowPower
LPC
Expand Down Expand Up @@ -1085,8 +1083,8 @@ optionMask
optionOverride
optionsMask
optionsOverride
orgs
Orchestrator
orgs
OSS
OTA
OTADownloader
Expand Down Expand Up @@ -1185,6 +1183,7 @@ PowerSource
PowerSourceConfiguration
pre
PrebuiltDataModelDirectory
prepends
preprocessor
Presetup
PressureMeasurement
Expand Down Expand Up @@ -1263,7 +1262,6 @@ rebase
recommand
recommanded
Reconnection
reconnection
reconnections
recurse
refrigeratoralarm
Expand Down Expand Up @@ -1337,10 +1335,12 @@ scalability
scalable
schema
schemas
SCL
scm
sco
scp
ScriptBinding
SDA
SDB
SDC
SDHC
Expand Down Expand Up @@ -1460,13 +1460,15 @@ svg
SVR
SWD
SWU
symlink
symlinks
sysbuild
sysconfdir
SysConfig
sysctl
sysdeps
SYSROOT
sysroots
systemctl
systemd
systemdsystemunitdir
Expand Down Expand Up @@ -1593,6 +1595,7 @@ Unicast
UniFlash
UnitLocalization
unittest
unlinking
unpair
unprovisioned
unreferenced
Expand Down Expand Up @@ -1625,6 +1628,7 @@ UUID
ux
valgrind
validator
VCC
vcom
VCP
Vectorcall
Expand Down Expand Up @@ -1735,8 +1739,8 @@ zclsubscribe
zclwrite
ZephyrConfig
zephyrproject
zhengyaohan
Zeroconf
zhengyaohan
Zigbee
zigbeealliance
zigbeethread
Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
integrations/docker/images/chip-cert-bins/Dockerfile @oxesoft
3 changes: 2 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,5 @@ code readable:
- [ ] Try to avoid "squashing" and "force-update" in commit history
- [ ] CI time didn't increase

See: [Pull Request Guidelines](https://project-chip.github.io/connectedhomeip-doc/contributing/pull_request_guidelines.html)
See:
[Pull Request Guidelines](https://project-chip.github.io/connectedhomeip-doc/contributing/pull_request_guidelines.html)
Loading
Loading