user6842: Using any graphical based wallet it's trivial to delegate to a stake pool. How do you accomplish this same task using only CLI tools (e.g. cardano-cli)?

user4302: You can use cardano-cli to delegate.
First, make sure your stake address is registered on chain.
If it isn't already and you want to do it from cardano-cli, you must first build the stake-address registration certificate:
cardano-cli stake-address registration-certificate \
--stake-verification-key-file <STAKE.VKEY_FILEPATH> \
--out-file <STAKE_ADDRESS_REGISTRATION_CERTIFICATE_FILE>

Submitting this certificate (if you haven't already) will cost 2 ADA as a deposit (which you can then reclaim if you de-register the stake address).
Next, construct a delegation certificate for the pool you wish to delegate to:
cardano-cli stake-address delegation-certificate \
--stake-verification-key-file <STAKE.VKEY_FILEPATH> \
--stake-pool-id <BECH32_OR_HEX-encoded_STAKEPOOL_ID> \
--out-file <DELEGATION_CERTIFICATE_FILEPATH> \

You may then submit these two certificates in a single transaction. If your stake address is already registered on chain you can skip the registration cert and only construct/submit the delegation cert.
For further clarification regarding this and/or signing/submitting these certs as transaction, I'd recommend the CoinCashew Guide, specifically the section on pool registration.

6842: <p>Using any graphical based wallet it's trivial to delegate to a stake pool. How do you accomplish this same task using only CLI tools (e.g. cardano-cli)?</p>
 4302: <p>You can use cardano-cli to delegate.</p>
<p>First, make sure your stake address is registered on chain.
If it isn't already and you want to do it from cardano-cli, you must first build the stake-address registration certificate:</p>
<pre><code>cardano-cli stake-address registration-certificate \
--stake-verification-key-file &lt;STAKE.VKEY_FILEPATH&gt; \
--out-file &lt;STAKE_ADDRESS_REGISTRATION_CERTIFICATE_FILE&gt;
</code></pre>
<p>Submitting this certificate (if you haven't already) will cost 2 ADA as a deposit (which you can then reclaim if you de-register the stake address).</p>
<p>Next, construct a delegation certificate for the pool you wish to delegate to:</p>
<pre><code>cardano-cli stake-address delegation-certificate \
--stake-verification-key-file &lt;STAKE.VKEY_FILEPATH&gt; \
--stake-pool-id &lt;BECH32_OR_HEX-encoded_STAKEPOOL_ID&gt; \
--out-file &lt;DELEGATION_CERTIFICATE_FILEPATH&gt; \
</code></pre>
<p>You may then submit these two certificates in a single transaction. If your stake address is already registered on chain you can skip the registration cert and only construct/submit the delegation cert.</p>
<p>For further clarification regarding this and/or signing/submitting these certs as transaction, I'd recommend the <a href="https://www.coincashew.com/coins/overview-ada/guide-how-to-build-a-haskell-stakepool-node/part-iii-operation/registering-your-stake-pool" rel="nofollow noreferrer">CoinCashew Guide, specifically the section on pool registration.</a></p>
