DEV Community

Cover image for I Built Blackdesk, a Keyboard-First Market Research Terminal with AI Connectors
Florin Dumitru
Florin Dumitru

Posted on

I Built Blackdesk, a Keyboard-First Market Research Terminal with AI Connectors

Why I built Blackdesk, an open source market research terminal that brings quotes, news, screeners, and AI connectors into one keyboard-first workspace.

If you spend a lot of time doing market research, your workspace usually turns into a mess.

You search for a symbol in one app, check the chart somewhere else, read the news in the browser, run a screener in another tab, and then paste half of that context into an AI chat that has no idea what you were looking at five seconds ago.

That was the starting point for Blackdesk.

Blackdesk is an open source market research terminal built in Go, designed to be local-first and keyboard-first. The idea is simple: quotes, charts, technicals, news, fundamentals, statements, insiders, screeners, and AI connectors, all in one focused desk inside the terminal.

The Problem I Wanted to Solve

Most tools are decent at one slice of the problem, but the workflow itself is still fragmented:

  • you search for a symbol in one place
  • check the chart somewhere else
  • read the news in the browser
  • open another tool for screeners
  • then manually push context into an AI chat

For me, that is too much friction.

I did not want another overloaded “all-in-one dashboard.” I wanted a tool that felt more like a workbench: fast, clear, easy to drive from the keyboard, and modular enough that I can swap market-data providers or AI connectors without rebuilding the whole thing.

What Blackdesk Is

Blackdesk is organized around five main workspaces:

  1. Markets for broad market context
  2. Quote for the active symbol
  3. News for a normalized market-wide headline wire
  4. Screeners for discovery
  5. AI for desk-aware analysis based on the current context

Inside Quote, you can move quickly between:

  • chart
  • fundamentals
  • technicals
  • financial statements
  • insider activity
  • company-specific news

The goal is simple: stay in one flow instead of constantly switching surfaces.

Why Local-First and Keyboard-First

I wanted the product to be terminal-native, not just something styled to look like a terminal.

keyboard-first means the primary workflow should feel faster from keys than from clicks. For example:

  • Tab switches workspaces
  • / opens symbol search
  • 1-5 jumps directly between views
  • . focuses the AI input
  • c, f, t, s, and h switch sub-views inside Quote

local-first means two important things:

  1. the app runs as a local desk, not as a thin client glued to an opaque backend
  2. the AI layer is built around CLI-based AI connectors, not a single hardcoded provider

Right now, Blackdesk can work with installed AI CLIs such as:

  • Codex
  • Claude Code
  • OpenCode

That distinction matters. Blackdesk is not trying to be “a local LLM terminal app.” The AI layer is a workspace that uses connectors to tools like Codex, Claude Code, and OpenCode, while passing in relevant context from the desk.

The Important Part: AI with Real Context

One thing I cared about early was making sure the AI layer does not receive raw, messy upstream payloads. It should receive normalized context from Blackdesk.

In practice, that means:

  • the UI and providers are not directly coupled to prompt construction
  • external data gets normalized before it flows through the app
  • AI receives a relevant desk snapshot instead of a pile of improvised JSON

That matters for a few reasons:

  • responses are more coherent
  • the app can enforce clearer boundaries
  • the architecture stays replaceable

I also wanted explicit boundaries. For example, screener data is intentionally excluded from AI context. I wanted a clean separation between discovery flows and contextual analysis of the current symbol or market state.

The Technical Stack

Blackdesk is written in Go and uses these libraries in the TUI layer:

  • Bubble Tea
  • Bubbles
  • Lip Gloss
  • ntcharts

Architecturally, the project is moving toward a layered / ports-and-adapters shape:

  • internal/tui for presentation and interaction
  • internal/application for orchestration and use cases
  • internal/domain for normalized models
  • internal/providers for external data adapters
  • internal/agents for AI connector integrations
  • internal/storage for config and cache

The first market-data adapter is currently Yahoo Finance, and market-wide news runs through a separate RSS provider. That separation is important to me: the UI should not depend on the shape of an upstream payload.

What I Wanted the Product to Feel Like

I am not trying to build a “cool terminal app” for the sake of it.

I am trying to build a tool that removes actual research friction:

  • one desk for market context and symbol analysis
  • a clear workflow between watchlists, quotes, news, and screeners
  • AI that already understands the current context
  • an architecture clean enough to replace providers and AI connectors over time

To me, Blackdesk should feel closer to a workbench than an app.

What It Is Not

Blackdesk is not:

  • a broker
  • an execution platform
  • an investment-advice product

It is a research tool. That means market data can be incomplete, delayed, or affected by upstream provider behavior, and important decisions still need to be verified against authoritative sources.

That boundary felt important enough to make explicit in the product itself, not bury in a disclaimer.

How to Try It

If you want to check it out:

Install:

curl -fsSL https://blackdesk.ai/install | bash
Enter fullscreen mode Exit fullscreen mode

Run:

blackdesk
Enter fullscreen mode Exit fullscreen mode

The first workflow I recommend is:

  1. press / and search for a symbol
  2. open it in Quote
  3. move through c, f, t, s, and h
  4. jump into Markets, News, and Screeners
  5. open AI and ask for a summary of the active setup

What Comes Next

Blackdesk is still under active development, which is part of the fun.

The direction I want to keep is:

  • terminal-first without becoming rigid
  • AI that is useful, not decorative
  • modular architecture
  • a product that stays fast, focused, and workflow-driven

If you like local tools, carefully designed terminal interfaces, and the idea of putting market research and contextual AI in the same place, Blackdesk will probably make sense to you.

If people are interested, I can also write a more technical follow-up about the architecture, Bubble Tea, AI context design, or how I split the product into Quote, Markets, News, Screeners, and AI.

Top comments (0)