keywordpro README

The project's README from github.com/AgriciDaniel/keywordpro. As one markdown file: README.md.

Keyword Pro

Keyword Pro

Keyword Pro is a standalone, local keyword research console. It combines a guided keyword report with an advanced endpoint explorer, saved research sessions, charts, and exports.

There is no signup, billing layer, or hosted account system. One local user owns the database and supplies their own DataForSEO credentials.

Application

The screenshots below were captured from the actual local application using a deterministic synthetic report. They contain no account data, credentials, or captured provider results. Live results vary by query, market, language, and available provider data.

Research workspace

Keyword Pro research workspace with report overview, demand trend, and search intent

Opportunity and difficulty

Keyword Pro opportunity map, difficulty spread, highest-volume keywords, and easiest wins

Keyword Pro interest trends and historical volume, CPC, and competition

Audience and regional demand

Keyword Pro audience demographics and regional demand

Search discovery

Keyword Pro autocomplete, people-also-ask, and related-search findings

Keyword table

Keyword Pro keyword table with volume, trends, difficulty, intent, CPC, and competition

Keyword details

Keyword Pro expanded keyword details and monthly history

Connections

Keyword Pro DataForSEO connection settings

What it does

Keyword Pro admits keyword endpoints only. Website, Social, and Commerce modes are not available in the interface or through the run APIs.

Run locally

Requirements: Node.js 24, pnpm 9, OpenSSL, and Podman or Docker.

cp .env.example .env
openssl rand -base64 32
pnpm install --frozen-lockfile --ignore-workspace

Paste the OpenSSL output into KEYWORD_PRO_ENCRYPTION_KEY in .env before starting the app. To keep the key outside .env, leave that value empty and set KEYWORD_PRO_ENCRYPTION_KEY_FILE to a private file containing the generated key. For rotation, configure KEYWORD_PRO_ENCRYPTION_KEYS with named keys and select the write key with KEYWORD_PRO_ENCRYPTION_KEY_ACTIVE. Then run:

./dev-up.sh

The startup script validates the required settings before starting local services.

In another terminal, initialize the local database on the first run:

pnpm --ignore-workspace db:migrate
pnpm --ignore-workspace seed

db:migrate creates a fresh canonical schema or transactionally upgrades the legacy private-preview table names without rewriting saved reports or encrypted credential values. It stops on a mixed or ambiguous schema instead of guessing.

After upgrading a private-preview database, inspect retained compatibility data without printing record identifiers, cached payloads, or encrypted values:

pnpm --ignore-workspace legacy:inventory

If you choose to preserve that data outside PostgreSQL, create a private directory outside the repository and provide an explicit new filename:

mkdir -m 700 ../keyword-pro-private
pnpm --ignore-workspace legacy:export -- \
  --output ../keyword-pro-private/legacy-compatibility.json

The export includes all saved sessions and opportunities plus retained legacy credential ciphertext. It excludes current DataForSEO credentials, never decrypts values, writes mode 0600, refuses overwrites, and refuses paths inside the repository. Treat the resulting file as private. No export or deletion happens automatically.

Open http://localhost:3002/keyword-pro.

Keyword Pro binds to 127.0.0.1 by default. It is a local, single-user tool, not a hardened hosted or multi-user service. Do not expose it directly to a LAN or the internet without adding authentication and a deployment-specific security review.

Routes

/keyword-pro                        keyword console
/keyword-pro/research/[sessionId]   saved keyword report
/settings/connections               DataForSEO credentials
/settings/profile                   local profile
/api/v1/research/run                one keyword endpoint
/api/v1/research/module/run         curated keyword module
/api/health                         database check

Credentials and cost

DataForSEO credentials can be entered under Settings, Connections or supplied through .env. Saved values are encrypted with AES-256-GCM and are never sent back to the browser in plaintext.

Live research calls spend money from the connected DataForSEO account. The available report sources and estimate vary by country and language. The offline verification commands do not call a provider and do not spend money.

Keyword Pro is an independent project and is not affiliated with or endorsed by DataForSEO.

Community

Verify

pnpm --ignore-workspace run ci

The CI suite performs linting, type checking, offline behavioral verification, and a production build. These checks do not make paid provider calls.

To run the built application locally, use the validated package command:

pnpm --ignore-workspace start

It checks the database TLS decision and encryption-key material before opening the loopback application port.

Project documentation

License

Keyword Pro is open source under the Apache License 2.0.

Release status

The package version is v1.0.0-rc.1, the first public release candidate. Published releases come from immutable annotated tags after the tagged commit passes GitHub Actions. See the GitHub Releases page for the latest published build.

keywordpro (AgriciDaniel/keywordpro)

Searching Database…

这是什么?Keyword Pro 是一个独立的本地关键词研究控制台,在提供引导式报告的同时还带一个高级 DataForSEO 端点浏览器,支持保存会话、图表,以及 PDF、CSV 和 JSON 导出。
这是托管的 SEO 服务,还是需要我自己运行的程序?它是本地单用户应用,没有注册、计费或托管账号系统——你在自己的机器上运行它,并使用自己的 DataForSEO 凭据。
怎么让它跑起来?生成一个 OpenSSL 密钥,填入 .env 中的 KEYWORDPROENCRYPTIONKEY,用 Podman 或 Docker 启动本地服务,然后运行 db:migrate 脚本在首次运行时初始化数据库。
试用之前需要安装什么?Node.js 24、pnpm 9、OpenSSL 和 Podman 或 Docker,还需要你自己的 DataForSEO API 凭据,因为应用本身不附带任何凭据。
我能直接把它暴露到网络上给团队用吗?不行——它默认绑定 127.0.0.1,且按单用户工具设计;要暴露给局域网或互联网,你必须先自行添加身份验证并进行安全审查。
我的 DataForSEO 凭据存在哪里?凭据在 Settings/Connections 下或通过 .env 输入,用 AES-256-GCM 加密存储在本地,绝不会以明文形式回传给浏览器。
使用 Keyword Pro 要花钱吗?应用本身免费开源,但实际研究调用会从你绑定的 DataForSEO 账户花钱;在任何付费运行开始前它都会显示预估费用。
引导式报告覆盖多少个市场和语言?它支持 94 个市场和引导式关键词报告中全部 46 种可用语言,并会在无效的国家-语言组合产生花费之前将其拦下。
高级(Advanced)模式有什么不同?高级模式开放 332 个面向关键词的 DataForSEO 端点定义,但 Keyword Pro 只接受关键词端点——Website、Social 和 Commerce 模式不可用。
重新打开旧报告会再次扣费吗?不会,已完成的报告保存在本地,重新打开已保存的报告绝不会触发又一次付费 API 调用。
Size
4.7 MB
Stars
263
Updated
CommitSep 11
Age
1mo
Commits · 90 Days