

query() /
CocoSession API for scripts and CI.

panel(), chat_input_bar(), copilot_rail(), render_approvals() — so an app author writes the page and the options, not the session bridge.
st.container / st.session_state — deep Streamlit expertise is not required.uvcortex) on PATHstreamlit-coco-dev (or just pip install)

make chat, make backlog, make bi-semantic, make headless, connected to a real Snowflake account.panel() + chat_input_bar(), with require_approval_for configured.CocoOptions for a real workflow, embed copilot_rail() in an existing multipage app.check_environment(), STREAMLIT_COCO_DEBUG, and the Technical Guide's help reference.
git clone .../streamlit-coco-dev.gitmake install — uv sync --extra dev
cortex --versionexport CORTEX_CODE_CLI_PATH=/path/to/cortex
~/.snowflake/connections.toml with a [connections.analytics] entry (account, user, authenticator). Legacy config.toml also detected. No connection= set → the Snowflake CLI's default connection is used.
python -c "import streamlit_coco as c; print(c.__version__)" prints 0.1.9cortex --version succeedscheck_environment(...).ready is Truemake check passes — ruff + unit/smoke pytest, no failuresmake chat opens a working app and streams a response with at least one tool cardmake chat — the preferred pattern
check_environment() rendered by render_start_gate() — no agent starts until you click Start.@st.fragment poll loop (run_every=0.25) renders progressively — the rest of the page never reruns.render_approvals().
make backlogmake bi-semanticcopilot_rail(). Title row: Copilot, Connection popover, icon-only Display config — two sliders, Last messages (default 8) and First n characters (default 200).panel() is the common core; copilot_rail() adds connection chrome, job queuing, and transcript-compactness controls.
panel() + chat_input_bar() end to endoutput_schema into a widget
examples/chat_app.py — four calls. Run make chat. Type a sample-data question. Point at the streaming transcript and the tool card.
make structured. Show output_schema. Ask for a breakdown → renders as a chart, not raw text. "No manual JSON parsing."pip install "streamlit-coco[sdk]". Approval gates on by default. One library: panel, structured, headless. Apache-2.0.make headless or the rail, if the room has time.
allowed_tools / require_approval_for in CocoOptions, per tool.
doc/training/enablement/ — this trackdoc/training/training/ — 3 use casesdoc/training/user-guide/ · technical-guide/doc/training/certifications/enablement.md ← take this next, score 8/10
README.md · doc/api.mddoc/deployment/local.mddoc/features/ — per-feature reference