Kibot Agent

Kibot Agent is the first-party Windows GUI that downloads and refreshes Kibot market data on a customer's machine without requiring any code. It is free to install, talks to the same Kibot API that powers programmatic integrations, and is the recommended entry point for non-programmers who want scheduled, unattended updates of their on-disk archives. Its scope is strictly downloading and file management, it does no charting, no backtesting, and no analysis. For the broader picture of how updates are delivered through the available channels (Agent, API, direct download links), see Data updates.

Kibot Agent for Windows showing the Settings and Download Data dialogs
Kibot Agent on Windows: schedule and download market data with no code.

Download Kibot Agent

Free Windows installer. No registration needed to try it: sign in with guest / guest for free daily stock and ETF data plus sample intraday files.

Download for Windows
  • Version 1.0.2012
  • 78 MB installer
  • Windows XP–11, Server 2008–2016

Already have Agent installed? Grab the smaller upgrade package (30 MB).

No adware, toolbars, or spyware. Verify the binary independently on VirusTotal.

What it does

Agent fetches historical market data for any ticker symbol included in the customer's active subscription or one-time purchases and writes the results to a local folder as ASCII text files compatible with most trading and analysis programs. Supported instruments cover US stocks, ETFs, futures, and forex, and every interval Kibot sells, tick, second, aggregate bid/ask, daily, weekly, monthly, and any minute interval from one upward, is available through the same interface. Output format is selectable: standard Kibot CSV for general use, or native TradeStation, NinjaTrader 7, and NinjaTrader 8 variants when the files will be consumed by those platforms directly.

Updates are designed to be incremental. When a file already exists on disk, Agent reads the most recent timestamp and requests only the bars that follow, which keeps bandwidth and runtime bounded regardless of how much history the account carries. HTTP compression is used on the wire, and Agent will turn on Windows NTFS file compression for the destination folder if the operator asks, bringing typical on-disk size to roughly one tenth of the uncompressed text.

Timestamps in the output can be kept in Kibot's native Eastern Time or converted on write to UTC or any other IANA offset the customer configures, which matters for users whose downstream tooling expects a specific zone, see Timezone conversion for the trade-offs involved. Portfolio and custom-list features let a user group symbols for batch operations, and every task accepts a customisable start and end date range rather than forcing a fixed window.

Account types and market coverage

Agent supports two distinct login modes that correspond to two different access tiers. A guest login, the literal username guest with the literal password guest, unlocks free end-of-day daily data for US stocks and ETFs plus a small number of free sample 1-minute and tick files intended for pre-purchase evaluation (per Kibot support correspondence). Guest mode requires no registration, no email address, and no payment information, and is the path Kibot recommends for anyone who wants to verify the tool works on their machine before buying a package. A registered login uses the email and password created at account purchase time and unlocks whatever the customer has actually paid for: specific instrument packages, subscription-controlled update cadences, and any tick, second, or minute history that is not part of the free daily set. The same executable serves both modes, the difference is credentials, not install.

Coverage is substantially US-only. Support has confirmed in customer email that Kibot does not carry non-US cash equities (no Euronext, no Tel-Aviv, no Asian exchanges) and has no near-term plans to add international equity markets (per support). Users who need European or Asian equities should look elsewhere; within US cash equities and ETFs plus US-listed futures and forex majors, the catalogue is deep. This framing matters for prospective customers arriving at Agent expecting a global data tool, the Windows installer reveals nothing about geography, and the first visible "Europe / Asia / FX" configuration options in the symbol list concern US-listed ETFs and US-listed forex pairs rather than native foreign markets.

Three international index-futures continuous contracts are the narrow exception to the US-only rule and have been available alongside the main US futures catalogue: XG (continuous DAX), MT (continuous CAC 40), and CN (continuous FTSE China A50) (per support). They show up in Futures symbols and are purchased the same way as any US contract. Separately, a broader list of European, Australian, and Canadian futures was historically part of the standard package and was later removed from the public contract list; support has confirmed those files can still be added back to an active account on request, sourced from the previous package list rather than the current website (per support). Customers who need European index futures or previously-listed international contracts should ask before assuming unavailability, the current Buy page is not a complete map of what the backend can deliver.

Automation and scheduling

Tasks can be run on demand from the GUI or scheduled through the built-in Windows Task Scheduler integration. Agent exposes enough control over task creation that a typical "refresh my data every morning at 07:30" workflow requires no external scripting: the user defines the task inside Agent and the resulting Task Scheduler entry runs it. Advanced users who prefer to drive the scheduler themselves can inspect the Actions tab of a created task to see the exact command line Agent uses, then replicate or extend it.

Two operational quirks are worth knowing before setting up unattended runs, both documented in the Faq-derived guidance in Data updates: scheduled tasks should specify "Run only when the user is logged on" to avoid hung processes, and Agent itself should be launched with administrator rights through the executable's Properties so it has full access to the destination folder, the scheduled-tasks API, and any files it needs to modify in place.

When task settings do not persist

A recurring class of support ticket describes the same sequence: open Tools, click Schedule Task, enter a task name, click Settings, pick the download options, click OK through three dialogs, right-click Run on the new entry, and watch it fail because the options were not actually saved. Right-clicking Settings on the failed task confirms the chosen options are missing. The workaround Kibot support recommends is to create the scheduled task without actually scheduling its execution; it still appears in the Scheduled Tasks tab where it can be right-clicked and started manually, and all the options stick the second time around (per support correspondence). A separate fix in the same thread is to walk through Tools, Setup Wizard after entering the email and password in Settings, then create the task, open it in Scheduled Tasks, double-check the settings, and run (per support).

The underlying cause is almost always a permissions issue on C:\ProgramData\Kibot Agent\Tasks\ rather than a bug in the dialog. Granting the running Windows user full read/write on that folder, and launching Agent as administrator, resolves the majority of "my task disappeared" and "options were not saved" reports without any UI workaround.

Monitoring an unattended run

Two ways to tell when a scheduled Agent task has actually finished. The simplest is to wait for the process to exit, since Agent closes itself once a scheduled task completes; a watchdog that polls the process list is a reliable completion signal. The other is to tail the run's log file for the phrases successfully completed the task or task completed on, which Agent writes once per task on success (per support). If the process refuses to exit after the task body has finished, set "Run only when the user is logged on" on the Task Scheduler entry and add a "Stop the task if it runs longer than" backstop on the Settings tab; both together prevent a stuck Agent process from blocking the next scheduled run.

Installing on Windows

The installer ships as a self-extracting .exe distributed from kibot.com/agent/. The full installer (kibotagentsetup.exe) is roughly 78 MB; customers upgrading from an earlier version can fetch a significantly smaller delta package (kibotagentsetup2.exe) from the same page. The current published version at the time of writing is 1.0.2012, with release history tracked in Kibot's public change log. Double-click the downloaded installer to start it, or save it first and run it manually from the saved location; either way the installer copies the files needed for the program to run and places a Kibot Agent icon on the Windows desktop.

Kibot explicitly states the installer contains no bundled adware, toolbars, spyware, or similar ride-along software, and references third-party scanners (metascan-online, VirusTotal) that customers can use to verify the binary independently.

Windows Defender SmartScreen

A recent Windows 10 policy change causes SmartScreen to show a "Windows protected your PC" warning on the Kibot Agent installer for users who have not previously run it. The installer is still usable, the warning is a publisher-trust prompt, not a virus detection, and can be dismissed without reinstalling Windows or disabling SmartScreen globally. Right-clicking the downloaded installer, opening Properties, ticking the "Unblock" checkbox at the bottom of the dialog, and clicking OK marks the file as trusted for the current user; re-running the installer then proceeds normally and grants Agent write access to C:\ProgramData\Kibot Agent where it stores its settings.

Running from behind a proxy

Agent honours Windows' system-wide proxy configuration; customers behind a corporate proxy should set the proxy through Internet Options, Connections, LAN Settings and Agent will pick it up. Per-task overrides are not exposed in the GUI. A single-threaded download is the default behaviour through most proxies, regardless of the parallel-connection count set on the Advanced tab, because corporate proxies typically serialise outbound HTTP from a single host (per support correspondence). If throughput through a proxy is unacceptably low, the standard fallback is to run Agent from a machine outside the proxy, or to switch to wget against the plain-text URL list from a Linux machine that has a direct outbound route.

Non-Windows customers

There is no macOS or Linux build of Kibot Agent. Customers on those platforms have three options, in increasing order of work: drive the per-file wget path against the plain-text URL list the account page exports; integrate against the Kibot API directly from Python, R, or any HTTP client; or run Agent under a Windows VM. Customer correspondence repeatedly confirms the first option is the practical answer for most non-Windows pipelines, even for large initial pulls, provided wget is given the resume flags described in Installing wget, resume and retries.

System requirements

Minimum hardware is modest: around one gigabyte of RAM, about 150 megabytes of disk space for the program itself (separate from the data it downloads), and a working internet connection. Supported operating systems span the Windows desktop line from Windows XP through Windows 11, and the server line from Windows Server 2008 through Windows Server 2016 (Windows 11 compatibility was confirmed directly by support in 2023, ahead of the kibot.com product page being updated). There is no native macOS or Linux build; users on those platforms typically run Agent under a Windows VM, fall back to the Kibot API, or drive direct download links with wget as described in Data updates.

Where Agent stores its state

Agent persists its settings and task definitions under C:\ProgramData\Kibot Agent\. Global program settings, including the default destination folder and any saved credentials, live in config.xml at the root of that folder. Scheduled tasks are stored as individual XML files inside the Tasks subdirectory, one per task, which Agent reads at launch to populate the Scheduled Tasks list and which Windows Task Scheduler uses to actually execute the jobs. Because C:\ProgramData is a hidden folder by default on modern Windows, a customer troubleshooting a "my task disappeared" problem may need to un-hide protected operating-system files in Explorer before they can see it; support has diagnosed several "Tasks folder doesn't exist" tickets that were really just Explorer not showing hidden directories (per support correspondence).

This location matters operationally for two reasons. First, a backup strategy for Agent is simply to copy the entire C:\ProgramData\Kibot Agent\ folder somewhere safe, restoring it on a new machine preserves credentials, task definitions, and the default folder, so a reinstall is the program plus this one folder. Second, when a task fails to persist or the program throws "access denied" on save, the fix is almost always a permission issue on this folder rather than on the install directory: granting the running Windows user full read/write on C:\ProgramData\Kibot Agent\Tasks clears most of the "settings won't save" class of report.

Custom date and time format

Agent's Advanced tab in the Download Data window exposes a Custom date/time field that overrides the default output format on a per-task basis. The field takes a standard .NET format string, yyyyMMdd,HHmm yields a combined date-and-time column rendered as 20171231,1525, and dd-MMM-yyyy HH:mm yields 31-DEC-2017 15:25, which is useful when the downstream consumer expects a specific layout that neither the standard Kibot CSV nor the NinjaTrader/TradeStation variants provide out of the box (per support correspondence). One operational gotcha: changing the format string mid-task is not a merge-friendly operation. Agent's resume logic compares the last timestamp of the existing file against what the server offers, and that comparison breaks when the on-disk format no longer matches what Agent is about to write. The safe pattern is to point a reformatted task at an empty destination folder and let it download fresh rather than trying to append differently-formatted rows onto a file already populated in the old format.

Platform integration

The on-disk files Agent writes are plain text, and the full byte-level layout lives in Data format reference. What that reference does not cover is how the popular downstream platforms actually consume those files, which is where most of the day-two friction lives.

NinjaTrader 7 and 8 import Kibot files through Tools → Historical Data Manager → Import. Select the Agent output folder as a generic text source and let the Historical Data Manager walk field mapping. Enable Use NinjaTrader format on Agent's Advanced tab before downloading so Agent writes semicolon-delimited files with the yyyyMMdd date format and the bar-close timestamp convention NinjaTrader expects, mixing the standard Kibot format with NinjaTrader imports produces off-by-one-bar errors that are painful to debug later. The most common import failure is Instrument not supported by repository, which is not a Kibot-side problem; it means NinjaTrader does not have a definition for the futures contract symbol in the file. Adding the missing contract to NinjaTrader's instrument repository manually, using the values from Futures specifications, clears it permanently.

TradeStation is more forgiving about format and accepts comma-, tab-, or space-delimited files through the import wizards under its Symbol Universe manager. Standard Kibot CSV works out of the box; NinjaTrader-format files do not, because of the semicolon delimiter. TradeStation's wizard lets you specify date order (MDY, YMD, or DMY) during import, so the Kibot MM/DD/YYYY default imports cleanly without reformatting.

Python users can read any standard Kibot file directly with pandas; pd.read_csv(path, parse_dates=[0], index_col=0) yields a DataFrame indexed by trading timestamp, which is almost always the right shape for downstream time-series work. R users get the same ergonomics from readr::read_csv() or the quantmod package. Both languages handle the comma-delimited standard format without configuration; only the NinjaTrader-format export needs an explicit delimiter argument (sep=';').

Excel opens Kibot files if you either rename .txt to .csv or use Data → From Text and pick comma as the delimiter. The gotcha is Excel's roughly one-million-row-per-sheet limit, which is fine for daily data on most symbols but insufficient for minute data on active tickers and nowhere near enough for tick data on a single liquid name. For anything denser than minute data, skip Excel and use Python, R, or a database.

Operational practice

A few operational choices separate a reliable Kibot Agent install from one that quietly drifts out of date, and most of them are not in Agent's UI, they are scheduling and network decisions.

Destination folder. Point Agent at a plain, uncompressed folder on a drive with ample free space. Windows NTFS folder compression interacts badly with large file writes on fragmented volumes, partial writes can stall or corrupt mid-download, which surfaces to the user as repeated failures at the same percentage on a long tick-data run. Kibot support has traced these reports back to Windows compression on a fragmented disk rather than to server-side throttling (per support), so before escalating a "download stops at 44%" style ticket it is worth checking Folder → Properties → Advanced and unchecking "Compress contents to save disk space", then defragmenting (or moving the destination to a drive with headroom).

Connection count. Agent's Advanced tab exposes a parallel-connection setting. For daily and minute downloads on cable or fibre, three to five connections is the practical sweet spot; beyond that, Kibot's rate limiter (currently five concurrent connections per IP) starts throwing throttling errors and overall throughput gets worse, not better. For large tick files, ES alone can exceed 35 GB, a single connection is more reliable than several parallel ones, because partial-file recovery after a dropped connection is cheaper than re-negotiating multiple streams. DSL and satellite users should start at one and only raise if throughput is clearly capped by the setting rather than by the link.

When to schedule. Daily stock and ETF data is processed within a few hours of US market close; tick data takes longer because the transaction-level organisation is more expensive, and Kibot's support correspondence consistently places full tick availability around 05:00 Eastern (per support). A nightly run between 02:00 and 06:00 Eastern catches both sets when they are ready and runs against a lightly loaded server, the peak of user-driven load is right after the market close, so scheduling the update immediately after 16:00 ET usually takes longer and fails more often than waiting until the small hours.

Regular-session filter for futures. The Advanced tab's Regular session only checkbox is honoured for stock and ETF downloads but is silently ignored when the instrument type is futures, futures trade nearly 24 hours and Agent always emits the full session regardless of the checkbox state (per support). Users who want a regular-hours-only futures series must post-filter by timestamp themselves rather than relying on Agent's UI.

Resume and retries. Interrupted downloads are not a problem to babysit. When Agent next runs against the same destination folder it compares the last timestamp of each local file against what the server offers and fetches only the missing tail, so the natural recovery from a failed run is simply to let the scheduled task run again, no manual fiddling, no symbol-list curation. Missing symbols in the log are usually recent IPOs that post-date your download window or tickers that were delisted before it; clicking Online next to the symbol list dropdown refreshes Kibot's current list and clears the majority of spurious "symbol not found" entries.

Common failure modes. Authentication errors surface after a subscription lapses or an account-management change invalidates cached credentials; the fastest test is the Login now button in Settings, which exercises auth without starting a download. Network timeouts on large files almost always resolve by reducing connection count and re-scheduling into the 02:00–06:00 ET window. And for API-driven integrations that run alongside Agent, the same five-concurrent-connection ceiling applies per IP, so a machine running Agent on a schedule plus an independent API poller can exhaust the quota without realising it, stagger the two or drop Agent's connection count to leave headroom (per support).

Key Takeaways

  • Kibot Agent is Kibot's free Windows GUI for downloading and updating data; it is the recommended path for non-programmers and for anyone who wants scheduled incremental refreshes.
  • Two login modes: guest/guest for free US daily stock and ETF data plus sample intraday files (no registration), or a registered email/password login for paid subscriptions and full intraday history.
  • Substantially US-only: cash equities are US-exchange only, with no plans to add international equities; three international index-futures continuous contracts are the narrow exception (XG DAX, MT CAC 40, CN FTSE China A50), and a broader historical list of European / Australian / Canadian futures can be reactivated on request.
  • Internally Agent calls the Kibot API, so anything Agent can do can also be scripted directly against the API.
  • Output formats include standard Kibot CSV and native TradeStation, NinjaTrader 7, and NinjaTrader 8 variants; timestamps can be retained as ET or converted on write.
  • Scheduling is handled through the built-in Windows Task Scheduler integration; run Agent as administrator and set scheduled tasks to "Run only when the user is logged on" to avoid common automation pitfalls.
  • The installer is roughly 78 MB with a smaller delta upgrade package; Windows SmartScreen may flag the binary on first run and can be cleared by ticking "Unblock" in the file's Properties dialog.
  • Supported platforms span Windows XP through Windows 10 and Server 2008 through 2016; no macOS or Linux build is offered.
  • Downstream imports: enable NinjaTrader format on Agent's Advanced tab before downloading for NinjaTrader users (semicolon-delimited, bar-close timestamps); standard CSV works directly in TradeStation, Python (pandas.read_csv), R, and Excel (subject to the million-row-per-sheet cap).
  • Keep parallel connections to three to five for daily/minute data and to one for large tick files; the server-side ceiling is five concurrent connections per IP and exceeding it throttles throughput rather than improving it.
  • Point the destination at an uncompressed NTFS folder on a drive with headroom; Windows folder compression on fragmented disks is a common cause of "download stalls at N%" tickets.
  • Schedule nightly refreshes between 02:00 and 06:00 Eastern, daily data is ready within a few hours of close, full tick data is ready around 05:00 ET, and the server is lightly loaded outside peak market-close hours.
  • Data updates, Kibot Agent sits alongside the API and direct download links as one of the delivery channels.
  • Data format reference, the on-disk file layout Agent writes, including the NinjaTrader and TradeStation variants referenced above.
  • Timezone conversion, how Agent's optional timezone conversion interacts with Kibot's native ET timestamps.
  • Futures specifications, the contract-definition values needed when NinjaTrader's repository reports a futures symbol as unsupported.
  • Kibot Updater, the merge tool that solves the on-disk update problem for customers who pull the archives by hand.
  • Installing wget, the cross-platform command-line alternative for customers on Linux or macOS, or on Windows pipelines that already run from a shell.
  • Kibot API, the HTTP interface Agent uses internally; anything Agent can do can be scripted directly through the API.
  • Kibot company, the vendor behind the tool.
  • Open source tools, planned open-source companions (gap detector, continuous-futures builder, timezone converter) that complement Agent for users who want scriptable equivalents.