Project Overview¶
CANarchy is a CLI-first CAN security research toolkit for reproducible, protocol-aware, automation-friendly workflows.
Core principles:
- the CLI is the contract
- structured output is a first-class interface
- J1939 is treated as a primary workflow, not an afterthought
- front ends should stay thin and reuse the same core engine
Current Capabilities¶
Implemented and exercised in the current codebase:
python-can-backed live transport workflows plus deterministic scaffold transport forcapture,send,generate, andsimulate- file-backed
filter,stats,compare,capture-info,decode,j1939 decode, andreplayusing candump logs sequence replayfor coordinated transmit of a YAML/JSON sequence of DBC-encoded frames- live
gatewaybridging between CAN interfaces viapython-can - database-backed
decode,encode,dbc inspect,dbc convert, anddbc generate-cacross DBC / ARXML / KCD / SYM, including provider-ref resolution anddbc_sourceprovenance in structured output - DBC provider and cache workflows for catalog search, fetch, and refresh through the optional opendbc integration
- J1939
monitor,decode,pgn,spn,tp,dm1,faults,summary,inventory,compare, andmap - UDS
scan,trace,services,subservices,ecu-reset,tester-present,security-seed,dump-dids,read-memory, andauto - DoIP
discovery,services,ecu-reset,tester-present,security-seed, anddump-didsfor Diagnostic-over-IP workflows - XCP-on-CAN
scan,info,dump,trace,read, andcommands - J1587/J1708 and J2497 (PLC4TRUCKS) passive decode workflows for legacy heavy-vehicle buses
- reverse-engineering helpers:
re signals,re counters,re entropy,re correlate,re anomalies,re corpus,re match-dbc,re shortlist-dbc, andre suggest - active-transmit fuzzing (
fuzz payload,replay,arbitration-id,signal,spn,guided,identify) behind the active-transmit safety model - public CAN dataset provider workflows for search, inspect, fetch, download, convert, stream, and replay
- repository-backed skills provider workflows for discovering, fetching, caching, and referencing agent-oriented CANarchy skills
- Python entry-point
pluginsinspection and toggles - session
save,load, andshow - structured
exportfor capture files and saved sessions - shell command reuse through
canarchy shell --command ... - a full-screen Textual
tuidashboard and a read-onlyweb servebrowser dashboard over the shared command layer config showfor effective transport configuration inspection- structured
--json,--jsonl, and--textoutput modes
Some protocol-oriented commands still use explicit sample/reference providers rather than true transport-backed execution. See Architecture and Command Spec for the current boundary.
Current Gaps¶
Not fully implemented yet even where the command surface exists:
- deeper live transport integration beyond the current
python-cantransport path - follow-up active-transmit safety controls (configurable rate-cap ceiling, TOML target allowlist, explicit
KILL_SWITCH_TRIGGEREDalert)
Recommended Reading¶
- Command Spec for the current CLI contract
- Architecture for system layout and design rules
- Docs Workflow for local preview and publishing details
- Agent Guide for repository-specific automation guidance