# Phloem documentation

Connect hardware and tools, run pass/fail rules on the machine, review every run in the cloud.

- [What is Phloem](https://phloem.ai/docs/concepts/): The seven words the Phloem docs use — input, channel, pipeline, run, project, Trellis and connector — and how data flows from one to the next.
- [Install](https://phloem.ai/docs/install/): Install Phloem on the computer wired to your hardware — macOS, Windows and Linux (.deb or AppImage) — and upgrade it in place.
- [Your first input](https://phloem.ai/docs/getting-started/): Get your first input running in Phloem — replay a recording, connect a live device or stream, or send readings from your own code.
- [Verify that your data is arriving](https://phloem.ai/docs/guides/verify-data/): Confirm an input is producing samples, see its channels on Live, and check whether its data has reached the cloud.
- [Replay a recording](https://phloem.ai/docs/guides/replay-a-recording/): Load an MCAP file or a ROS 2 bag, pick its topics, and scrub through it on Replay with the same channels a live run produces.
- [Stream from a PLC over Modbus](https://phloem.ai/docs/guides/stream-from-a-plc/): Install the Modbus connector, point it at a PLC over TCP or RTU, and map its registers to named channels with units.
- [Send readings from a Python script](https://phloem.ai/docs/guides/send-from-python/): Open a Push endpoint input and run a Python script that posts readings to this device, where they appear as live channels.
- [Stop a test when a reading goes out of range](https://phloem.ai/docs/guides/stop-on-a-limit/): Add a limit to a channel so the test stops and every output goes to its safe value the moment a reading crosses it.
- [Get a Slack message when a limit is crossed](https://phloem.ai/docs/guides/alert-in-slack/): Route a Trellis alert to a Slack channel, so crossing a limit posts a message without stopping the test.
- [Mark an event and find it later](https://phloem.ai/docs/guides/mark-and-find/): Tag a moment or a range in Replay with a name, then filter and jump back to it from the tags list.
- [Chart a run and pin it to a dashboard](https://phloem.ai/docs/guides/build-a-dashboard/): Have Hamming chart a run, save the chart onto a new or existing dashboard, and open it in the console with fresh data.
- [Ask Hamming about a test run](https://phloem.ai/docs/guides/ask-hamming-about-a-run/): Ask Hamming why a run failed or how it compares to others, and get an answer built from the run's own measurements and data.
- [Decode a CAN bus with your DBC](https://phloem.ai/docs/guides/decode-can/): Read a live CAN bus or a candump log and decode every frame into named signals with your own .dbc file.
- [Scale a raw signal into engineering units](https://phloem.ai/docs/guides/calibrate/): Calibrate a channel with a line, a polynomial or a certificate table, check it against the live reading, and share it across channels.
- [Open a run in Excel or pandas](https://phloem.ai/docs/guides/open-in-excel/): Download a recorded run as CSV for Excel or Parquet for pandas, then open it. Files past one Excel sheet continue in parts.
- [Connect a computer to your workspace](https://phloem.ai/docs/guides/connect-a-computer/): Sign in from Phloem Computer and approve in your browser, or enrol a headless machine with phloem device enrol for an admin to approve.
- [Add footage and line it up with your data](https://phloem.ai/docs/guides/add-footage/): Import a recorded video clip as a camera channel, pinning one frame to the instant it shows on your data.
- [Inputs](https://phloem.ai/docs/inputs/): Every way to get data into Phloem — live streams from cameras, vehicles and buses, recorded files, or readings your own code posts — and how to add one.
- [Live streams](https://phloem.ai/docs/inputs/streams/): Connect something that sends data while it runs — a camera, microphone, vehicle, robot or bus.
- [Files & recordings](https://phloem.ai/docs/inputs/files/): Play back a recording as if it were live, with the same channels, charts and tests.
- [Send your own data](https://phloem.ai/docs/inputs/push/): Send readings from your own script, rig or service, and they become live channels on this device.
- [Name channels and units](https://phloem.ai/docs/inputs/channels/): Give each signal a readable name and unit, and see how it is drawn. A channel is one signal from one input, named by a path like /rig/pressure, /cam/front…
- [Pipelines](https://phloem.ai/docs/inputs/pipelines/): Shape channels as they arrive — filter, rescale, rename, decode CAN, shrink video, mark events and add derived channels — before they are recorded.
- [Assets](https://phloem.ai/docs/inputs/assets/): The equipment your data is about — which units are connected, which channels belonged to each and when, and the controls a unit offers.
- [Trellis](https://phloem.ai/docs/trellis/): Write a short program that runs your test on live channels. It reads sensors, sets stop conditions and safety limits, and lays out a live page.
- [Declare reads and writes](https://phloem.ai/docs/trellis/channels/): List the channels your program reads and writes, by the paths you see on Live.
- [Stop conditions](https://phloem.ai/docs/trellis/checks/): A live bound that stops the test the moment it fails. Every output goes to its safe value, and the test stays stopped until you Reset.
- [Interlocks](https://phloem.ai/docs/trellis/interlocks/): A safety limit that acts. When it trips, Phloem drives the outputs you name to safe values. They stay there (latches) until you Reset.
- [Alerts](https://phloem.ai/docs/trellis/alerts/): Tell someone in Slack, Teams or email when a condition fires, without stopping the test.
- [Procedures](https://phloem.ai/docs/trellis/sequences/): A multi-step profile you run with one click, such as a heat soak, a fire profile or a mission. Every ordered step is a step.
- [Acceptance recipes](https://phloem.ai/docs/trellis/recipes/): Use a recipe to pass or fail a unit. It runs on a setup, steps it through a profile, takes measurements and records a verdict per bound.
- [User page](https://phloem.ai/docs/trellis/page/): The live page your setup shows in the Panel view. Lay out widgets in rows and columns; it updates in real time.
- [Notebooks](https://phloem.ai/docs/trellis/notebook/): Use a notebook to work out a number on live data while the test runs: filter a noisy pressure, take an RMS, chase a wobble from yesterday's run.
- [Run your own scripts](https://phloem.ai/docs/trellis/scripts/): Keep the test scripts you already have. A recipe step runs your script with exec.
- [Peers](https://phloem.ai/docs/trellis/peers/): Run one test across two machines. On the Peers tab, pair the other device: find it or enter its address, read the fingerprint aloud to confirm, and…
- [Streaming data](https://phloem.ai/docs/capabilities/stream/): Does it send me data? Yes: a stream of channels you watch on Live, chart and record.
- [Commands](https://phloem.ai/docs/capabilities/command/): Can I set values on it? Yes: setpoints, mode changes, actuator outputs. In Trellis, declare the output with ch.write(path), then send a value with…
- [Parameters](https://phloem.ai/docs/capabilities/params/): Does it have config I can read and write? Yes: a parameter table you can list, read and set, such as a vehicle's MAVLink parameters or a simulator's…
- [Engines](https://phloem.ai/docs/capabilities/engine/): Can it run my code? Yes, in MATLAB or Python. You send code and inputs and get results back.
- [Operations](https://phloem.ai/docs/capabilities/ops/): Anything vendor-specific? The connector offers named operations: one-off actions for that tool, like running an analysis, uploading a mission or spawning…
- [Live](https://phloem.ai/docs/review/live/): Watch channels as they arrive. Arrange tabs and split panes, add tiles, read a tile's details and put one tab full screen on a rig display.
- [Replay](https://phloem.ai/docs/review/replay/): Play back what this device recorded, including what the cloud holds for it. Pick a time window, tick channels, press play.
- [Runs](https://phloem.ai/docs/review/runs/): Record a run on Live, ask who and what before it starts, save files when it ends, then find, download or release it in Replay and the console.
- [Marks](https://phloem.ai/docs/review/marks/): A mark flags a moment in a test, tagged by a test program as it ran or by a person, live or later.
- [Charts and dashboards](https://phloem.ai/docs/review/charts/): Chart your test data and share it. A chart is a saved query plus how to draw its rows. A dashboard is a grid of charts.
- [Export data](https://phloem.ai/docs/review/export/): Save a window or a run to a folder as CSV, Parquet or TDMS, with camera video as MP4. One sheet, four steps, and a README in every folder.
- [AI](https://phloem.ai/docs/ai/): Hamming, Phloem's agent, answers questions about your devices, runs and data, and builds charts and procedures. Where to reach it and what it reads.
- [Hamming](https://phloem.ai/docs/ai/agent/): Ask Hamming about your devices, runs and data. How sessions work, what needs your approval, and how to stop or steer a reply.
- [Trace](https://phloem.ai/docs/ai/trace/): Trace holds the records your team keeps in other tools — issues, CAD parts, schemas, devices — and flags a procedure when a field it cites changes.
- [MCP for coding tools](https://phloem.ai/docs/ai/mcp/): Connect Claude Code, Cursor or Codex to your Phloem workspace through its MCP server, set up in one command with the phloem CLI.
- [Projects](https://phloem.ai/docs/workspace/projects/): A project holds your inputs, calibrations, pipelines, Trellis documents and layouts. Save versions, share them as profiles and load them on other devices.
- [Devices and fleets](https://phloem.ai/docs/workspace/devices/): Connect a computer or a headless server to your workspace, stay within your plan's device limit, rename or revoke a device, and group devices into fleets.
- [Members and plans](https://phloem.ai/docs/workspace/members/): Invite people, set who is an Admin or a Member, switch workspaces, create API keys for CI, and see what your plan allows.
- [Cloud sync and working offline](https://phloem.ai/docs/workspace/sync/): What works with no network or no sign-in, how captures wait on disk and catch up, choosing what to send, and checking what reached the cloud.
- [Where your data lives](https://phloem.ai/docs/workspace/data/): Find, browse and query what your devices send to the cloud. It all lands in Reservoir, in one of four tables chosen by what the channel is, not which input…
- [Retention](https://phloem.ai/docs/workspace/retention/): Choose how long the cloud keeps recorded data, once for the whole organization, in Reservoir → Settings → Retention.
- [AI provider](https://phloem.ai/docs/workspace/ai-provider/): Who serves Hamming's models — Phloem managed, or on Enterprise your own Vertex AI, Azure AI Foundry, Amazon Bedrock or API key.
- [AI usage and limits](https://phloem.ai/docs/workspace/ai-usage/): Each plan includes monthly AI credits for Hamming. What a credit is, what happens when they run out, and where your workspace's usage shows.
