Tau CLI¶
This page is a practical, end-to-end guide to using tau without interactive prompts and with production-safe defaults.
If you want deep resource-specific behavior, use the Development pages as the canonical reference. This page focuses on command flow, command families, and high-signal usage patterns.
Install and verify¶
Core mental model¶
- A project has two repositories managed by Tau:
- config repository (
tb_config_<project>) - code repository (
tb_code_<project>) - You usually work in this order:
- authenticate
- select cloud/universe + project
- create or edit resources
- push config
- push code
- check build/logs
Authentication and profile management¶
Create a profile¶
Login with token non-interactively¶
Switch profile¶
Context and selection¶
See current context¶
Select cloud (remote)¶
Select project¶
Project lifecycle¶
Create project (non-interactive)¶
tau new project my_project \
--description "Main product project" \
--private \
--no-embed-token \
--yes
Clone project repositories¶
Pull and push¶
tau pull project
tau push project --config-only --message "update config"
tau push project --code-only --message "update code"
Resource command families¶
Most resources follow this shape:
tau new <resource> <name> [flags]
tau edit <resource> <name> [flags]
tau delete <resource> <name>
tau list <resource_plural>
Use tau --help and tau <command> --help to view full flags in your installed version.
Create resources quickly (high-value templates)¶
Application¶
HTTP function¶
Important: - use one function per method+path - do not combine methods in one function
tau new function get_notes \
--description "List notes" \
--type http \
--method GET \
--paths /notes \
--source app_main/functions/get_notes \
--template empty \
--language Go \
--timeout 30s \
--yes
Website¶
tau new website docs_site \
--description "Documentation website" \
--template empty \
--domains docs.example.com \
--paths / \
--provider github \
--generate-repository \
--no-private \
--branch main \
--no-embed-token \
--yes
Database¶
tau new database notes_db \
--description "Notes data" \
--match notes \
--min 1 \
--max 1 \
--size 1GB \
--yes
Storage¶
tau new storage uploads_store \
--description "User uploads" \
--match uploads \
--bucket Object \
--size 10GB \
--versioning \
--yes
Messaging¶
tau new messaging events_channel \
--description "App event bus" \
--match events \
--mqtt \
--web-socket \
--yes
Domain¶
tau new domain app_domain \
--description "Public app domain" \
--fqdn app.example.com \
--cert-type le \
--yes
Library¶
tau new library shared_sdk \
--description "Shared app code" \
--template empty \
--provider github \
--generate-repository \
--private \
--branch main \
--no-embed-token \
--yes
Production-safe workflow¶
Use this exact sequence after resource changes:
- Push config first:
- Then push code:
- Verify builds:
Dream/local workflow¶
dream is the local cloud runtime. Use it with tau to test full workflows before remote deployment.
1) Install and start¶
2) Create/select universe¶
3) Point Tau to local context¶
4) Work normally¶
Use the same tau new, tau edit, tau push, tau query flow you use remotely.
Non-interactive patterns you should always use¶
- Prefer explicit boolean flags:
--no-embed-tokeninstead of interactive prompts--privateor--no-privateexplicitly for repo visibility- Always pass
--yeswhen scripting resource creation. - Always pass
--branch mainon clone operations. - Avoid prompt-only flows in CI.
Windows notes¶
- For some path-based flags in Git Bash/MSYS, disable path conversion:
- Keep command examples in shell-compatible quoting.
Troubleshooting¶
project is not selected or wrong context¶
Build fails after push¶
Check for: - invalid function method/path setup - wrong source path - missing .taubyte metadata in function/website folders - compile/runtime errors in function code
Dream/local commands fail¶
If Docker is not running, start Docker Desktop first, then retry.
Full potential checklist¶
- Keep one project per product boundary.
- Group resources by application.
- Keep one HTTP function per method+path.
- Reuse code through libraries.
- Use matcher values consistently for data resources.
- Push config before code when infra changes.
- Use local Dream for integration testing.
- Monitor every deployment with
tau query buildsandtau query logs.
Command discovery map¶
Use these help pages directly in your terminal:
tau --help
tau new --help
tau edit --help
tau delete --help
tau list --help
tau clone --help
tau pull --help
tau push --help
tau query --help
tau select --help
tau current --help
For complete local cloud operations, see Dream CLI.