# KLineChartQuant > An open-source K-line (candlestick) chart and quant workstation that an agent can drive. The > agent and the interface call the same chart methods, so what an agent does appears on the chart > the user is looking at. Apache-2.0. Version 0.11.0-alpha.9, commit 1aa5e22c. ## Use it - Workstation in the browser: https://kcq.nebutra.com/app - Install the library: `pnpm add @363045841yyt/klinechart` - Documentation: https://kcq.nebutra.com/docs (Chinese: https://kcq.nebutra.com/zh/docs); every page is also Markdown at .md - Documentation for agents: https://kcq.nebutra.com/docs/llms.txt and https://kcq.nebutra.com/docs/llms-full.txt - Agent tool reference: https://kcq.nebutra.com/docs/agent/tools - Source: https://github.com/363045841/KLineChartQuant - Package: https://www.npmjs.com/package/@363045841yyt/klinechart ## Chart tools for agents `getRegisteredChartTools()` from `@363045841yyt/klinechart-core/controllers` returns each tool with its name, description, JSON Schema parameters and safety level. A read-only agent receives only the read-only tools. Registry at this commit: https://github.com/TsekaLuk/KLineChartQuant/blob/1aa5e22c61313a34d08878ad895e604e0d4a85e9/packages/core/src/features/agent/impl/chartAgentController.ts - `comparisons_list` (read-only) - `comparison_create` (changes the chart) - `comparison_remove` (changes the chart) - `comparisons_clear` (changes the chart) - `panes_list` (read-only) - `pane_create` (changes the chart) - `pane_update` (changes the chart) - `pane_remove` (changes the chart) - `pane_move` (changes the chart) - `pane_replace_content` (changes the chart) - `pane_update_content` (changes the chart) - `panes_clear` (changes the chart) - `indicators_query` (read-only) - `instruments_query_name` (read-only) - `market_bars_query` (read-only) - `market_timeshare_query` (read-only) - `market_timeshare_range_query` (read-only) - `drawings_list` (read-only) - `drawing_create` (changes the chart) - `drawings_copy` (changes the chart) - `drawing_update` (changes the chart) - `drawing_delete` (changes the chart) - `drawings_clear` (changes the chart) - `settings_get` (read-only) - `settings_update` (changes the chart) - `settings_reset` (changes the chart) Wiring them into your own agent loop: ```ts import { createChartController, getRegisteredChartTools, } from '@363045841yyt/klinechart-core/controllers' const chart = await createChartController({ container, data }) // The same @Tool methods the interface calls: schema, safety level, one executor. export const tools = getRegisteredChartTools().map((tool) => ({ name: tool.config.name, // 'drawing_create', 'comparison_create', … description: tool.config.description, parameters: tool.config.parameters, // TypeBox, i.e. JSON Schema readOnly: tool.config.safety === 'read-only', run: (input: unknown, signal: AbortSignal) => { const host = chart.agent.toolHosts.find((h) => tool.owns(h)) ?? chart.agent return tool.execute(host, input, { signal, progress: () => {} }) }, })) ``` ## Pages - https://kcq.nebutra.com/home (home, en) - https://kcq.nebutra.com/zh/home (home, zh) - https://kcq.nebutra.com/benchmark (benchmark, en) - https://kcq.nebutra.com/zh/benchmark (benchmark, zh) - https://kcq.nebutra.com/investors (investors, en) - https://kcq.nebutra.com/zh/investors (investors, zh) ## Investors and partners KLineChartQuant is raising its seed round and looking for design partners. The business plan is sent on request: write to tseka@nebutra.com. Overview: https://kcq.nebutra.com/investors ## Notes - Market data on the public pages is read-only daily bars from GOTDX and may be delayed. - Not investment advice.