Flow CLI
The Flow CLI manages the full development lifecycle: project setup, account management, contract deployment, transaction sending, script execution, and local testing.
Quick Start
flow init my-project # Initialize project
flow emulator # Start local emulator
flow project deploy # Deploy contracts
flow test # Run tests
Navigation Map
| Task | Reference |
|---|---|
| Full command list, global flags, output options, MCP server | commands-overview.md |
| Account commands: get, create, fund, staking, contracts | accounts.md |
| Project commands: init, generate, deploy, test, deps, config | project.md |
| Query blockchain: accounts, blocks, events, transactions, scripts | query-blockchain.md |
| Ready-to-use Cadence script recipes (balance, staking, NFT, EVM) | cadence-scripts.md |
Key Principles
- Default network is
emulator— always specify--network testnetor--network mainnetfor non-local operations - Use
--output jsonwhen parsing output programmatically - Account names resolve via
flow.json— use addresses directly when no config is present - Flow addresses accept both
0x-prefixed and raw hex formats
Companion Skills
cadence-lang— Consult when writing Cadence scripts forflow scripts executeor transactions forflow transactions send. The Cadence code must follow all language rules for access control, entitlements, and resource handling.flow-project-setup— Consult forflow.jsonconfiguration, deployment strategies, and the overall development workflow that ties CLI commands together.cadence-scaffold— Use to generate contracts and transactions before deploying them with the CLI.cadence-audit— Use to review contracts before deploying withflow project deployorflow accounts add-contract.