Kibot Agent

Kibot Agent is the free Windows GUI that downloads and refreshes Kibot market data on your machine without any code. It uses the same Kibot API that powers programmatic integrations, and is the recommended entry point if you are not a programmer and want scheduled, unattended updates of your on-disk archives. It only downloads and manages files: it does no charting, backtesting, or analysis. For how updates are delivered across all 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 through 11, Server 2008 through 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 in your active subscription or one-time purchases and writes the results to a local folder as ASCII text files that most trading and analysis programs can read. It covers US stocks, ETFs, futures, and forex, and every interval Kibot sells (tick, second, aggregate bid/ask, daily, weekly, monthly, and any minute interval from 1 upward) through the same interface. Output format is selectable: standard Kibot CSV for general use, or native TradeStation, NinjaTrader 7, and NinjaTrader 8 variants when those platforms will consume the files directly.

Updates are incremental. When a file already exists on disk, Agent reads its most recent timestamp and requests only the bars that follow, which keeps bandwidth and runtime bounded however much history the account carries. Data is compressed on the wire, and Agent can turn on Windows NTFS file compression for the destination folder if you ask, which cuts disk use by up to about 90% with no change to the file format.

Timestamps in the output can stay in Kibot's native Eastern Time or be converted on write to UTC or another timezone offset that you configure. See Timezone conversion for the trade-offs. Portfolio and custom-list features let you group symbols for batch operations, and every task accepts a custom start and end date range instead of a fixed window.

Account types and market coverage

Agent has two login modes, which correspond to two access tiers. A guest login (username guest, 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 for evaluating the data before you buy. Guest mode needs no registration, email address, or payment information, and is the best way to check the tool works on your machine before buying a package. A registered login uses the email and password created when you purchased, and unlocks what you have 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; only the credentials differ.

Coverage is limited to US markets. Kibot does not carry non-US cash equities (no Euronext, no Tel Aviv, no Asian exchanges) and does not plan to add them. If you need European or Asian equities, use another vendor. Kibot covers US cash equities and ETFs plus US-listed futures and forex majors. The Europe, Asia and FX options in Agent's symbol list refer to US-listed ETFs and US-listed forex pairs, not native foreign markets.

Automation and scheduling

Run tasks on demand from the GUI, or schedule them through the built-in Windows Task Scheduler integration. A workflow such as "refresh my data every morning at 07:30" needs no external scripting: define the task in Agent and the resulting Task Scheduler entry runs it. To drive the scheduler yourself, open the Actions tab of a created task to see the exact command line Agent uses, then copy or extend it. See Data updates for the command-line automation steps.

For reliable unattended runs, set the scheduled task to "Run only when the user is logged on" to avoid hung processes, and launch Agent with administrator rights (set this in the executable's Properties) so it has full access to the destination folder, the scheduled-tasks API, and any files it modifies in place.

When task settings do not persist

If a scheduled task fails because its options were not saved, work around it by creating the task without actually scheduling its execution. It still appears in the Scheduled Tasks tab, where you can right-click it and start it manually, and the options are kept the second time around. Alternatively, go through Tools, Setup Wizard after entering your email and password in Settings, then create the task, open it in Scheduled Tasks, check the settings, and run it.

The underlying cause is almost always a permissions problem on C:\ProgramData\Kibot Agent\Tasks\. Grant the Windows user that runs Agent full read/write access to that folder, and launch Agent as administrator.

Monitoring an unattended run

There are two ways to tell when a scheduled Agent task has finished. The simplest is to wait for the process to exit, because Agent closes itself once a scheduled task completes; a watchdog that polls the process list is a reliable completion signal. The other is to watch the run's log file for the phrases successfully completed the task or task completed on, which Agent writes once per task on success. If the process does not 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. Together they prevent a stuck Agent process from blocking the next scheduled run.

Installing on Windows

The installer is a self-extracting .exe available from the download button at the top of this page. The full installer (kibotagentsetup.exe) is roughly 78 MB. If you are upgrading from an earlier version, use the much smaller delta package (kibotagentsetup2.exe) from the same page. The current version is 1.0.2012. Double-click the downloaded installer to start it, or save it and run it from the saved location; either way it copies the files the program needs and places a Kibot Agent icon on the Windows desktop.

The installer contains no bundled adware, toolbars, spyware, or similar ride-along software. You can verify the binary independently with a third-party scanner such as VirusTotal.

Windows Defender SmartScreen

Windows SmartScreen shows a "Windows protected your PC" warning on the Kibot Agent installer if you have not run it before. The warning is a publisher-trust prompt, not a virus detection, and you can clear it without reinstalling Windows or disabling SmartScreen. Right-click the downloaded installer, open Properties, tick the "Unblock" checkbox at the bottom of the dialog, and click OK. This marks the file as trusted for your user account. Run the installer again and it proceeds normally and gives Agent write access to C:\ProgramData\Kibot Agent, where it stores its settings.

Running from behind a proxy

Agent uses Windows' system-wide proxy configuration. Behind a corporate proxy, set the proxy through Internet Options, Connections, LAN Settings and Agent picks it up. The GUI has no per-task proxy override. Downloads through most proxies are single-threaded by default, whatever parallel-connection count you set on the Advanced tab, because corporate proxies typically serialize outbound HTTP from a single host. If throughput through a proxy is too low, run Agent from a machine outside the proxy, or use wget with the plain-text URL list from a Linux machine that has a direct outbound route.

Non-Windows systems

There is no macOS or Linux build of Kibot Agent. On those platforms you have three options, in increasing order of work: use wget against the plain-text URL list that the account page exports; call the Kibot API directly from Python, R, or any HTTP client; or run Agent under a Windows VM. The wget option suits most non-Windows pipelines, including large initial pulls, provided you give wget the resume flags described in Installing wget, resume and retries.

System requirements

Agent needs about 1 GB of RAM, about 150 MB of disk space for the program itself (separate from the data it downloads), and an internet connection. It runs on Windows XP through Windows 11 and Windows Server 2008 through 2016. There is no native macOS or Linux build; see Non-Windows systems for alternatives.

Where Agent stores its state

Agent keeps its settings and task definitions under C:\ProgramData\Kibot Agent\. Global settings, including the default destination folder and any saved credentials, are in config.xml at the root of that folder. Each scheduled task is an individual XML file in the Tasks subfolder; Agent reads these at launch to fill the Scheduled Tasks list, and Windows Task Scheduler uses them to run the jobs. C:\ProgramData is hidden by default on modern Windows, so if a task seems to have disappeared or the Tasks folder seems missing, show hidden and protected operating-system files in Explorer before concluding it does not exist.

Knowing this location helps in two ways. First, to back up Agent, copy the entire C:\ProgramData\Kibot Agent\ folder somewhere safe; restoring it on a new machine brings back your credentials, task definitions, and default folder, so a reinstall is the program plus this one folder. Second, when a task fails to save or the program reports "access denied" on save, the cause is almost always a permission problem on this folder, not on the install directory. Grant your Windows user full read/write access to C:\ProgramData\Kibot Agent\Tasks.

Custom date and time format

The Custom date/time field on the Advanced tab of the Download Data window overrides the output format for a single task. It takes a standard .NET format string: yyyyMMdd,HHmm gives a combined date-and-time column such as 20171231,1525, and dd-MMM-yyyy HH:mm gives 31-DEC-2017 15:25. Use it when your downstream tool expects a layout that neither the standard Kibot CSV nor the NinjaTrader and TradeStation variants provide. Do not change the format string on a task that already has files: Agent's resume logic compares the last timestamp in the existing file with what the server offers, and that comparison breaks when the on-disk format no longer matches what Agent is about to write. Point a reformatted task at an empty destination folder and let it download fresh.

Platform integration

Agent writes plain-text files; the byte-level layout is in the Data format reference. This section covers how those files load into common platforms.

NinjaTrader 7 and 8. Enable Use NinjaTrader format on Agent's Advanced tab before downloading. Agent then writes semicolon-delimited files with yyyyMMdd dates, the layout NinjaTrader imports. Kibot's NinjaTrader layout stamps the start of the bar, so in NinjaTrader's import dialog choose the format whose label says the timestamps represent start of bar time (see the NinjaTrader 8 import guide), and check that a regular-session open is stamped 093000. Mixing the standard Kibot format with NinjaTrader imports produces errors that are hard to debug later. The most common import failure is Instrument not supported by repository. It is not a Kibot-side problem: it means NinjaTrader has no definition for the futures contract symbol in the file. Add the missing contract to NinjaTrader's instrument repository manually, using the values from Futures specifications, and it stays fixed.

TradeStation accepts comma-, tab-, or space-delimited files through its import wizards. Standard Kibot CSV works as it is. NinjaTrader-format files do not, because of the semicolon delimiter. The wizard lets you choose the date order (MDY, YMD, or DMY) during import, so Kibot's default MM/DD/YYYY imports without reformatting.

Python. pd.read_csv(path, parse_dates=[0], index_col=0) reads any standard Kibot file into a DataFrame indexed by trading timestamp, which is usually the right shape for time-series work. R reads the same files with readr::read_csv() or the quantmod package. Both handle the comma-delimited standard format with no configuration; only the NinjaTrader-format export needs an explicit delimiter argument (sep=';').

Excel opens Kibot files if you rename .txt to .csv or use Data, From Text and pick comma as the delimiter. Excel is limited to roughly one million rows per sheet, which is enough for daily data on most symbols but not for minute data on active tickers, and far too little for tick data on a single liquid symbol. For anything denser than minute data, use Python, R, or a database.

Operational practice

A few scheduling and network choices separate a reliable Agent install from one that quietly drifts out of date. Most of them are not in Agent's UI.

Destination folder. Point Agent at a folder on a drive with plenty of free space. Windows folder compression cuts disk use by up to about 90% with no format change, and Agent can compress its destination folder. If very large files stall or files go missing (for example, a download repeatedly stops at 44%), the cause is usually compression on a fragmented disk, not server-side throttling. Download into an uncompressed folder on a less fragmented drive: open Folder, Properties, Advanced and uncheck "Compress contents to save disk space", then defragment (or move the destination to a drive with more free space).

Connection count. The Advanced tab has a parallel-connection setting. For daily and minute downloads on cable or fiber, 3 to 5 connections is the practical ceiling; beyond that, throughput gets worse, not better. The recommended limit is 5 concurrent connections per account, shared across the API, FTP and Kibot Agent. It is a recommendation, not a hard limit. The servers themselves allow 40 requests in flight and 50 requests per 500 ms per server. Tick files for liquid futures are large, so use a single connection: recovering a partial file after a dropped connection is cheaper than renegotiating several streams. On DSL and satellite links, start at 1 and raise it only if the setting, not the link, is capping throughput.

When to schedule. Daily stock and ETF data is processed within a few hours of the US market close. Schedule runs after 6:30 AM ET: the previous day's data is complete after midnight ET, and new split and dividend adjustments are applied around 6:00 AM ET. User load peaks right after the close, so a run scheduled immediately after 16:00 ET usually takes longer and fails more often than a later one.

Regular-session filter for futures. The Regular session only checkbox on the Advanced tab applies to stock and ETF downloads and is silently ignored for futures: futures trade nearly 24 hours, and Agent always writes the full session. To get a regular-hours-only futures series, filter by timestamp yourself after downloading.

Resume and retries. When Agent next runs against the same destination folder, it compares the last timestamp of each local file with what the server offers and fetches only the missing tail. To recover from an interrupted run, just let the scheduled task run again; there is no need to fix anything by hand or curate the symbol list. Missing symbols in the log are usually recent IPOs that came after your download window, or tickers delisted before it. Clicking Online next to the symbol list dropdown refreshes Kibot's current list and clears most spurious "symbol not found" entries.

Common failures. Authentication errors appear after a subscription lapses or an account change invalidates cached credentials. The fastest test is the Login now button in Settings, which checks authentication without starting a download. Network timeouts on large files almost always go away if you reduce the connection count and reschedule to after 6:30 AM ET. If an API poller runs alongside Agent, a machine running Agent on a schedule plus that poller can exceed the recommended connection limit without you noticing; stagger the two or lower Agent's connection count to leave headroom.

Key Takeaways

  • Kibot Agent is Kibot's free Windows GUI for downloading and updating data. It suits non-programmers and 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 and password for paid subscriptions and full intraday history.
  • Coverage is limited to US markets: US-exchange cash equities only, with no international equities.
  • Agent calls the Kibot API internally, so anything Agent can do can also be scripted directly against the API.
  • Output formats are standard Kibot CSV plus native TradeStation, NinjaTrader 7, and NinjaTrader 8 variants. Timestamps can stay in ET or be converted on write.
  • Scheduling uses the built-in Windows Task Scheduler integration. Run Agent as administrator and set scheduled tasks to "Run only when the user is logged on".
  • The installer is roughly 78 MB, with a smaller delta package for upgrades. Windows SmartScreen may flag it on first run; tick "Unblock" in the file's Properties dialog to clear the warning.
  • Agent runs on Windows XP through Windows 11 and Windows Server 2008 through 2016. There is no macOS or Linux build.
  • For NinjaTrader, enable NinjaTrader format on Agent's Advanced tab before downloading (semicolon-delimited, bar-start timestamps). Standard CSV loads directly in TradeStation, Python (pandas.read_csv), R, and Excel (up to Excel's roughly one-million-row limit per sheet).
  • Use 3 to 5 parallel connections for daily and minute data and 1 for large tick files. The recommended limit is 5 concurrent connections per account, shared across the API, FTP and Kibot Agent; the servers allow 40 requests in flight and 50 requests per 500 ms per server.
  • Keep the destination on a drive with free space. Folder compression saves up to about 90% of disk use, but on a fragmented disk it can make large downloads stall or files go missing; if that happens, use an uncompressed folder on a less fragmented drive.
  • Schedule runs after 6:30 AM ET: the previous day's data is complete after midnight ET, and new split and dividend adjustments are applied around 6:00 AM ET.
  • Data updates: Agent, the API, and direct download links as delivery channels.
  • Data format reference: the on-disk file layout Agent writes, including the NinjaTrader and TradeStation variants.
  • Timezone conversion: how Agent's optional timezone conversion interacts with Kibot's native ET timestamps.
  • Futures specifications: the contract values to add when NinjaTrader reports a futures symbol as unsupported.
  • Kibot Updater: the merge tool for keeping on-disk files current when you pull the archives by hand.
  • Installing wget: the cross-platform command-line alternative for Linux and macOS, or for Windows pipelines that already run from a shell.
  • Kibot API: the HTTP GET API that Agent uses internally.
  • Kibot company: the company behind the tool.
  • Open source tools: planned open-source companions (gap detector, continuous-futures builder, timezone converter) for scriptable equivalents.