Documentation

Agent-visible Charts

Chart artifacts, indicators, manifests, and visual evidence for multimodal agents.

Copy this to your agent Help first
python -m pip install cornerstones-client
cornerstones-client --help
cornerstones-client guide
Agent-visible Charts Customer guide

At a glance

Charts are no longer just screenshots for humans. Cornerstones renders chart artifacts agents can see, compare, and reason over, while keeping the request metadata and response contract attached.

First chart command

CommandCopyable
cornerstones-client chart fx --symbol XAUUSD --timeframe 15m --bars 200 --indicator ema20 --indicator rsi14

What this is for

  • Visual price-action inspection by multimodal agents.
  • Iterating across timeframe, lookback, and overlays before writing a market note.
  • Attaching chart evidence to a context packet instead of pasting an unverified image.
  • Separating chart artifact freshness from the language model's own memory.

Common variants

CommandCopyable
cornerstones-client chart fx --symbol EURUSD --timeframe 1h --bars 120 --indicator ema20
cornerstones-client chart stocks --symbol AAPL --timeframe 1d --bars 180 --indicator sma50
cornerstones-client chart fx --symbol XAUUSD --timeframe 5m --bars 240 --template momentum --layout compact

Live response

Captured from a live Cornerstones API response on 2026-05-07T13:21Z. The capture key is not shown. Source details are normalized to Cornerstones labels.

JSON responseShow full responseHide response
{
  "symbol": "XAUUSD",
  "timeframe": "15m",
  "bars_count": 200,
  "engine": "cornerstones_chart_renderer",
  "image_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.png",
  "html_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.html",
  "manifest_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.manifest.json",
  "image_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.png",
  "html_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.html",
  "manifest_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.manifest.json",
  "image_width": 1600,
  "image_height": 1000,
  "indicators": [
    "rsi"
  ],
  "requested_indicators": [
    "rsi14"
  ],
  "provenance": "cornerstones_chart_local",
  "degraded": false,
  "fallback": null,
  "message": "Cornerstones chart rendered",
  "symbol_requested": "XAUUSD",
  "symbol_resolved": "XAUUSD",
  "market": "fx",
  "bars_policy": "explicit",
  "template": "legacy_default",
  "layout": "single",
  "chart_type": "candlestick",
  "artifacts": {
    "image_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.png",
    "html_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.html",
    "manifest_path": "/tmp/cornerstones/charts/fx_XAUUSD_15m_200_1778160111859.manifest.json",
    "image_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.png",
    "html_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.html",
    "manifest_url": "/v1/charting/artifacts/fx_XAUUSD_15m_200_1778160111859.manifest.json"
  },
  "applied_indicators": [
    "rsi"
  ],
  "layers": [],
  "requested_layers": [],
  "applied_layers": [],
  "include": [
    "quote",
    "indicators",
    "session"
  ],
  "manifest": {
    "render_spec": {
      "market": "fx",
      "symbol_requested": "XAUUSD",
      "symbol_resolved": "XAUUSD",
      "exchange_resolved": "FX",
      "timeframe": "15m",
      "bars_policy": "explicit",
      "bars_target": 200,
      "template": "legacy_default",
      "layout": "single",
      "chart_type": "candlestick",
      "layers_requested": [],
      "layers_applied": [],
      "requested_indicators": [
        "rsi14"
      ],
      "applied_indicators": [
        "rsi"
      ],
      "grid_config": null,
      "context_symbols": []
    },
    "visible_window": {
      "visible_range_from": "2026-05-05T13:30:00+01:00",
      "visible_range_to": "2026-05-07T17:15:00+01:00",
      "visible_bars_actual": 200,
      "last_visible_bar_timestamp": "2026-05-07T17:15:00+01:00",
      "reason": null
    },
    "price_edge": {
      "last_visible_bar": {
        "open": 4732.89,
        "high": 4742.32,
        "low": 4731.22,
        "close": 4742.32,
        "timestamp": "2026-05-07T17:15:00+01:00"
      },
      "live_quote": {
        "last": 4742.639999999999,
        "bid": 4742.32,
        "ask": 4742.96,
        "mid": 4742.639999999999,
        "timestamp": "2026-05-07T16:21:54+01:00",
        "freshness_ms": -7202126,
        "provenance": "cornerstones_market_data",
        "degraded": false
      },
      "right_axis_anchor_price": 4742.639999999999,
      "anchor_price_type": "live_quote",
      "delta_live_vs_last_bar_close": 0.32,
      "delta_live_vs_last_bar_close_pct": 0.00674775
    },
    "companion": {
      "price_summary": {
        "requested": null,
        "available": null,
        "degraded": null,
        "reason": null,
        "message": null,
        "provenance": null,
        "semantic_class": "deterministic_derived",
        "producer_type": "charting_service",
        "source_class": "fact_derived",
        "availability": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null
        },
        "source_ref": {
          "component": null,
          "provenance": null,
          "quote_provenance": "cornerstones_market_data",
          "bars_provenance": "cornerstones_market_data"
        },
        "gating_state": null,
        "generated_by_cornerstones": true,
        "is_cornerstones_house_view": true,
        "consumer_guidance": "Use as deterministic derived companion summary, not raw market truth.",
        "usage_note": "Derived from the live quote and the last visible bar.",
        "last_price": 4742.639999999999,
        "bid": 4742.32,
        "ask": 4742.96,
        "mid": 4742.639999999999,
        "last_bar_close": 4742.32,
        "anchor_price": 4742.639999999999,
        "anchor_price_type": "live_quote",
        "quote_provenance": "cornerstones_market_data",
        "bars_provenance": "cornerstones_market_data"
      },
      "indicator_snapshot": {
        "requested": null,
        "available": null,
        "degraded": false,
        "reason": null,
        "message": null,
        "provenance": "cornerstones_market_data",
        "semantic_class": "deterministic_derived",
        "producer_type": "charting_service",
        "source_class": "fact_derived",
        "availability": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null
        },
        "source_ref": {
          "component": "indicators",
          "provenance": "cornerstones_market_data"
        },
        "gating_state": null,
        "generated_by_cornerstones": true,
        "is_cornerstones_house_view": true,
        "consumer_guidance": "Use as deterministic derived companion summary, not raw market truth.",
        "usage_note": "Structured companion export from stocks indicators.",
        "price_summary": {
          "last": 4742.32,
          "high_20": 4752.49,
          "low_20": 4721.42
        },
        "indicators": {
          "ema_20": 4737.020656856778,
          "ema_50": 4725.080373807326,
          "rsi_14": 55.131658621575625,
          "adx": 14.442520816230475,
          "macd_12_26_9": {
            "line": 5.105477639183846,
            "signal": 5.68803166273981,
            "histogram": -0.5825540235559643
          },
          "atr_14": 10.287393714373612,
          "vwap": 4675.184097860914,
          "bollinger_20_2": {
            "upper": 4748.861715661268,
            "middle": 4737.052000000001,
            "lower": 4725.242284338733
          },
          "returns_1d": 0.012664931315542693,
          "returns_5d": 0.02616289763125268
        }
      },
      "session_summary": {
        "requested": null,
        "available": null,
        "degraded": false,
        "reason": null,
        "message": null,
        "provenance": "cornerstones_market_data",
        "semantic_class": "deterministic_derived",
        "producer_type": "charting_service",
        "source_class": "fact_derived",
        "availability": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null
        },
        "source_ref": {
          "component": "session",
          "provenance": "cornerstones_market_data"
        },
        "gating_state": null,
        "generated_by_cornerstones": true,
        "is_cornerstones_house_view": true,
        "consumer_guidance": "Use as deterministic derived companion summary, not raw market truth.",
        "usage_note": "Structured companion export from stocks session data.",
        "session_name": "overlap",
        "market_session": "overlap",
        "is_session_open": true,
        "session_window": {
          "start": "13:00Z",
          "end": "16:00Z",
          "timezone": "UTC"
        },
        "session_open": null,
        "session_high": 4736.05,
        "session_low": 4726.31,
        "distance_to_session_high": 6.289999999999964,
        "distance_to_session_low": 16.029999999999745,
        "previous_day_high": null,
        "previous_day_low": null,
        "previous_close": null
      },
      "context_summary": {
        "requested": null,
        "available": null,
        "degraded": null,
        "reason": null,
        "message": null,
        "provenance": null,
        "semantic_class": null,
        "producer_type": null,
        "source_class": null,
        "availability": null,
        "source_ref": null,
        "gating_state": null,
        "generated_by_cornerstones": null,
        "is_cornerstones_house_view": null,
        "consumer_guidance": null,
        "usage_note": null
      },
      "cross_asset_summary": {
        "requested": null,
        "available": null,
        "degraded": null,
        "reason": null,
        "message": null,
        "provenance": null,
        "semantic_class": null,
        "producer_type": null,
        "source_class": null,
        "availability": null,
        "source_ref": null,
        "gating_state": null,
        "generated_by_cornerstones": null,
        "is_cornerstones_house_view": null,
        "consumer_guidance": null,
        "usage_note": null
      },
      "multi_timeframe_bars": {
        "requested": null,
        "available": null,
        "degraded": null,
        "reason": null,
        "message": null,
        "provenance": null,
        "semantic_class": null,
        "producer_type": null,
        "source_class": null,
        "availability": null,
        "source_ref": null,
        "gating_state": null,
        "generated_by_cornerstones": null,
        "is_cornerstones_house_view": null,
        "consumer_guidance": null,
        "usage_note": null
      },
      "advanced_summary": {
        "requested": null,
        "available": null,
        "degraded": null,
        "reason": null,
        "message": null,
        "provenance": null,
        "semantic_class": null,
        "producer_type": null,
        "source_class": null,
        "availability": null,
        "source_ref": null,
        "gating_state": null,
        "generated_by_cornerstones": null,
        "is_cornerstones_house_view": null,
        "consumer_guidance": null,
        "usage_note": null
      }
    },
    "capabilities": {
      "supports_session_overlay": false,
      "supports_session_profile": false,
      "supports_cvd": false,
      "supports_vwap": false,
      "supports_benchmarks": false
    },
    "governance": {
      "experimental": false,
      "degraded": false,
      "fallback": null,
      "usage_hint": "analysis_and_agent_reading",
      "manifest_semantics_version": "chart_manifest_v2",
      "component_status": {
        "price_summary": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": "deterministic_derived",
          "producer_type": "charting_service",
          "source_class": "fact_derived",
          "availability": null,
          "source_ref": {
            "component": null,
            "provenance": null,
            "quote_provenance": "cornerstones_market_data",
            "bars_provenance": "cornerstones_market_data"
          },
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "indicator_snapshot": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": "deterministic_derived",
          "producer_type": "charting_service",
          "source_class": "fact_derived",
          "availability": null,
          "source_ref": {
            "component": "indicators",
            "provenance": "cornerstones_market_data"
          },
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "session_summary": {
          "requested": true,
          "available": true,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": "deterministic_derived",
          "producer_type": "charting_service",
          "source_class": "fact_derived",
          "availability": null,
          "source_ref": {
            "component": "session",
            "provenance": "cornerstones_market_data"
          },
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "context_summary": {
          "requested": false,
          "available": false,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": null,
          "producer_type": null,
          "source_class": null,
          "availability": null,
          "source_ref": null,
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "cross_asset_summary": {
          "requested": false,
          "available": false,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": null,
          "producer_type": null,
          "source_class": null,
          "availability": null,
          "source_ref": null,
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "multi_timeframe_bars": {
          "requested": false,
          "available": false,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": null,
          "producer_type": null,
          "source_class": null,
          "availability": null,
          "source_ref": null,
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        },
        "advanced_summary": {
          "requested": false,
          "available": false,
          "degraded": false,
          "reason": null,
          "message": null,
          "provenance": null,
          "semantic_class": null,
          "producer_type": null,
          "source_class": null,
          "availability": null,
          "source_ref": null,
          "gating_state": null,
          "generated_by_cornerstones": null,
          "is_cornerstones_house_view": null,
          "consumer_guidance": null,
          "usage_note": null
        }
      },
      "notes": []
    }
  },
  "capabilities": {
    "supports_session_overlay": false,
    "supports_session_profile": false,
    "supports_cvd": false,
    "supports_vwap": false,
    "supports_benchmarks": false
  },
  "experimental": false
}

Access

Charts require Pro or Max. If unavailable, use an allowed quote or bars command instead.