# SEOmi [](https://github.com/tomaszboloz/SEOmi/actions/workflows/test.yml) [](https://github.com/tomaszboloz/SEOmi/actions/workflows/release.yml) [](LICENSE) [](#technology) [](#technology) [](#technology) [](#verification) [](#verification) ### Help improve SEOmi If SEOmi saves you time, a GitHub star helps other desktop SEO practitioners find it. Improvements are welcome from users and engineers alike. [⭐ Star the repository](https://github.com/tomaszboloz/SEOmi/stargazers) · [🐛 Report a reproducible bug](https://github.com/tomaszboloz/SEOmi/issues/new) · [💡 Suggest an improvement](https://github.com/tomaszboloz/SEOmi/issues/new) · [🔧 Open a pull request](https://github.com/tomaszboloz/SEOmi/compare) · [✅ View CI runs](https://github.com/tomaszboloz/SEOmi/actions) SEOmi is a native desktop workspace for technical search optimisation. It runs on macOS and Windows, keeps work inside named projects, and gives the operator one place for page audits, site crawling, semantic planning, keyword research, ranking history, domain research, performance evidence, first party search data, AI visibility research, exports, schedules, and local agent connections. The application is independent software. It does not copy the identity, interface, or source branding of another product. It does not issue artificial AI credits. A user can connect a local Claude, Codex, or Gemini client and use the subscription already present on that computer. ## Contents
| Area | Functions | Stored in a project |
|---|---|---|
| Projects | Create, rename, select, delete, backup, restore as a new project, deep link to a module | Yes |
| Page audit | Metadata, social tags, headings, key phrase evidence, links, images, security headers, structured data, AMP signals, performance, accessibility, technology hints, HTTP evidence | Yes |
| Crawler | Scope rules, include rules, exclude rules, authentication profiles, queue, pause, resume, retry, render worker, resource inventory, link checks, directory view, diff between runs | Yes |
| Semantic map | Content only extraction, cluster assignment, entity evidence, internal link graph, force layout, drag, zoom, scroll, filters, content briefs, topical calendar | Yes |
| Keywords | Research, saved ideas, clustering, search volume, competition, SERP preview, location, language, intent, rank tracking | Yes |
| Domain | Domain overview, backlinks, referring domains, authority indicators, competitor visibility, technical health | Yes |
| Performance | PageSpeed Insights, Chrome UX field data, history, trend chart, device and strategy choices | Yes |
| First party data | Search Console connection, properties, performance queries, URL inspection, clicks, impressions, CTR, position | Yes |
| AI visibility | Brand lookup, prompt explorer, model comparison, citation evidence, visibility history | Yes |
| Agent workflows | MCP discovery, configuration export, Claude instructions, Codex instructions, Gemini instructions, local CLI detection | Project and local client |
| Exports | CSV for links, images, URLs, keywords, rank data, JSON project backup, PDF audit, PDF crawl report, MCP configuration | Files chosen by the operator |
| Automation | Scheduled page audits, scheduled crawls, wake up registration, headless queue worker, desktop notifications | Yes |
| Updates | Version in footer, update check, signed download, install, progress state, restart action | Local application |
| Team mode | Acting name and role (Admin, SEO Strategist, Content Writer, Developer), permission matrix, role checks on crawl start, PDF exports, Site Focus topic override and CMS apply, tamper-evident hash-chained audit log with CSV export | Yes |
| Data erasure | Type-to-confirm erasure of a project's local crawl runs, embeddings and history by destroying their encryption keys (GDPR), with a report of what was removed | Yes |
| CMS patch | WordPress, Strapi and webhook heading patch: diff, approval of the exact diff, mandatory dry-run, HTTPS-only native transport, credentials from the secure store, verified or unverified result | Yes |
| Log intelligence | Streaming import of local access logs (up to 500 MB, resume, dedupe), per-URL bot aggregates, Crawl Efficiency Matrix, desktop reverse and forward DNS bot verification | Yes |
| Signals | Semantic PageRank on a frozen graph snapshot with a stale-data banner, What-If link simulator, hreflang parity, template governor, decay radar, causal impact | Computed |
| Monitoring alerts | Opt-in alerts for Search Console decline, PageSpeed, crawl and semantic changes, Site Focus and AIO readiness score drops | Yes |
| Proxies | Request profiles accept a list of up to 64 HTTP or HTTPS proxies with round-robin rotation, ban after three failures and no direct fallback | Yes (secure store) |
| Media quality | ALT checks per image (missing, empty, file-name-like, generic, too long, repeats caption, unrelated to context) and an alt_issues CSV column; visual analysis stays marked unavailable without a local model | Computed |
| Interface | Single page navigation, collapsible sidebar groups, quick navigation, keyboard shortcuts, twelve languages, dark and light themes, accessible dialogs | Local preferences |
| Signal | Evidence | Typical action |
|---|---|---|
| Title | Title text and character count | Write a unique descriptive title |
| Description | Meta description text and length | Describe the page and its intent |
| Canonical | Declared canonical and resolved address | Align the canonical with the preferred page |
| Robots | Meta robots, X Robots Tag, indexability interpretation | Remove an unintended blocking directive |
| Headings | H1 through H6 tree, empty headings, skipped levels | Restore a meaningful document outline |
| Links | Internal, external, anchor, rel, target, mixed content, tabnabbing | Repair destinations and link security attributes |
| Images | Alt, width, height, loading, source set, format hint | Describe informative images and reserve layout space |
| Structured data | JSON LD, Microdata, RDFa, common Schema types and local rules | Correct required properties and duplicate declarations |
| Social | Open Graph, Twitter card, site name, image, locale | Make shared links readable |
| Security | HTTPS, cookies, mixed content, HSTS, CSP, frame policy, MIME policy, referrer policy, permissions, isolation | Reduce transport and browser attack surface |
| Accessibility | Labels, landmarks, language, duplicate identifiers, image alternatives, visible control evidence | Connect controls to labels and landmarks |
| AMP | AMP declaration, alternate address, local rule coverage | Review the alternate document separately |
| Technology | Header and document hints for platform, CMS, framework, analytics, and libraries | Confirm the detected stack before changing it |
Project ↓ Crawl evidence → Main content extraction → Terms and entities ↓ ↓ ↓ Internal links → Graph edges → Clusters → Content briefs → CalendarThe topical calendar tracks planned, briefed, drafted, published, and needs update states. A brief can contain intent, audience, primary phrase, supporting phrases, entities, outline, internal link targets, source evidence, and a draft version history. ### Embeddings (command line) `npm run embeddings` creates text embeddings for keyword lists, measures their accuracy and groups similar phrases. It runs offline by default; a local or LAN [Ollama](https://ollama.com) server is optional. ```bash npm run embeddings -- embed --input keywords.txt --output vectors.jsonl npm run embeddings -- eval --dataset tests/fixtures/embeddings/seo-topics.json --min-accuracy 0.85 npm run embeddings -- cluster --input keywords.txt --output groups.json # Optional Ollama: neural embeddings, a hybrid blend, and LLM names for groups npm run embeddings -- eval --provider hybrid --ollama-model nomic-embed-text --dataset my-labels.json npm run embeddings -- cluster --input keywords.txt --label-model llama3.2 ``` | Provider | What it uses | When to use it | | --- | --- | --- | | `local` (default) | Signed hashing of word stems, bigrams, character n-grams and a PL/EN SEO concept glossary, with corpus IDF | Offline, deterministic, no download | | `ollama` | `POST /api/embed` on the configured server (`--ollama-url`, `--ollama-model`) | Better synonym and paraphrase handling | | `hybrid` | Weighted blend of both (`--ollama-weight`, default 0.5) | Usually the most accurate when Ollama is available | **Accuracy.** `eval` reports leave-one-out k-nearest-neighbour accuracy (each labelled text is classified by its `k` most similar other texts) and cluster purity, and exits with code 1 below `--min-accuracy` (default 85%). With the `local` provider and `k=3` the bundled fixtures measure 97% (`seo-topics.json`, used to build the glossary) and 88% (`seo-topics-holdout.json`, written separately and not used for tuning); the unit tests keep both at or above 85%. These numbers describe the fixtures only — run `eval` on labelled examples from your own market before relying on a threshold. **In the app.** *Keywords → Keyword clustering* offers two methods. *Local embeddings (free)* is the default: up to 2,000 phrases are grouped on this computer with the same providers, a similarity slider and a cohesion score per group; Ollama embeddings and LLM group names are optional and use only `http://127.0.0.1:11434` (the only plain-HTTP origin the desktop CSP allows). *SERP overlap (DataForSEO, paid)* is unchanged and stays selected for projects that already have a SERP result. **Extending.** Add vocabulary to `SEO_GLOSSARY` (`src/services/embeddings/glossary.ts`), tune feature weights in `localProvider.ts`, or register a new backend in `PROVIDER_FACTORIES` (`registry.ts`); every provider works with `embed`, `eval` and `cluster` unchanged. `--cache file.json` reuses vectors for texts already embedded with the same provider and model. Cluster thresholds depend on the model (`DEFAULT_CLUSTER_THRESHOLD`); pass `--threshold` to override. ### DataForSEO costs and limits Every view that sends paid DataForSEO requests shows the cost of the last call (the amount DataForSEO reports), the spend in the current month and the estimated account balance. *Settings → API → Costs, balance and monthly limit* checks the balance (free endpoint) and sets the project's limit. By default **No limit — up to the account balance** is selected: requests are blocked before they are sent once the estimated balance cannot cover the next call. Unchecking it sets a monthly cap in USD with a warning threshold; the cap resets on the 1st of each month. For MCP, set `DATAFORSEO_MONTHLY_LIMIT_USD` (ledger: `DATAFORSEO_LEDGER_PATH`, default `~/.seomi/mcp-dataforseo-spend.json`). ## Data sources and integrations ### DataForSEO Credentials are entered in Settings and saved per project in the native credential manager. The picker supports the full location catalog and language catalog supplied by the service. Typing the first letters narrows the result immediately. The integration covers keyword ideas, SERP tasks, rank checks, domain metrics, backlink tasks, competitor discovery, and location aware requests. A missing credential produces a clear connection state rather than sample data. ### Search Console #### Google Analytics 4 The Analytics panel in the Search Console workspace requests a separate, explicit authorization for `analytics.readonly` alongside `webmasters.readonly`. Enable the Google Analytics Admin API and Google Analytics Data API in the Google Cloud project that owns the Desktop OAuth client. Existing Search Console authorization alone does not grant Analytics access. Refresh tokens and optional client secrets use the system credential store. Set the active project's website URL, authorize Analytics, then load its landing-page report for the selected Search Console period. SEOmi discovers web streams through the Admin API and uses a property only when the website match is unambiguous. Reports include observed sessions, engaged sessions and key events, with bounded pagination and explicit partial/empty states. The table can join matching URLs with Search Console and crawl evidence; missing observations stay unavailable. Analytics includes all acquisition channels, while Search Console represents organic search, so these metrics have different scopes. The integration has local API-fixture and regression tests. Live account permissions still depend on the connected Google account and Cloud project configuration. The connection flow identifies the account, lists available properties, and stores the chosen property in the active project. Performance queries can select date range, dimensions, filters, row limit, and search type. URL inspection is separate from performance data and reports the response received from the service. ### PageSpeed and field data PageSpeed requests can choose mobile or desktop and the analysis strategy. The workspace shows performance, accessibility, best practices, SEO, opportunities, diagnostics, and field data when the Chrome UX Report has enough samples. History is project scoped and charts show trend rather than inventing a score when data is absent. ### Local AI clients SEOmi can detect the Claude, Codex, and Gemini command line clients on the local machine. The agent workflow uses the subscription session of that client. API keys remain optional and are stored in the credential manager when the operator chooses a direct provider connection. SEOmi does not sell or subtract AI credits. ### MCP The MCP hub discovers available tools, displays the connection details, and exports a configuration file through the native save dialog. The configuration is written only after the operator selects a destination. Agent tools can research keywords, SERPs, domains, backlinks, and first party Search Console information. ## Exports and automation Every export is explicit. CSV exports are available for links, images, URL queues, keywords, and rank data. JSON backup contains project metadata, settings, workspace data, crawl runs, audit runs, saved ideas, rank history, semantic data, and schedules. It excludes DataForSEO credentials, Google keys, AI keys, and worker tokens. PDF exports are generated by the desktop command and contain the selected audit or crawl evidence. Scheduled tasks use the operating system wake up mechanism. A headless task writes its result to the project and the next application launch reconciles the handoff. Desktop notifications are optional and project scoped. ## Privacy and security SEOmi is local first. Audit HTML, crawl results, semantic maps, and project records remain on the device unless the operator requests an external service. Requests to DataForSEO, Google, an AI provider, or Search Console are visible integration actions and use the credentials selected for the project. The URL validator blocks unsupported schemes, local addresses, private network targets, malformed hosts, and unsafe redirects. Link checks use the native client. Cookies are not stored in audit reports. Secrets are stored by the operating system credential manager. Export files never contain secrets. The application does not provide legal, security, ranking, or accessibility certification. It provides evidence and deterministic rules so a specialist can decide what to do next. ## Technology
| Layer | Technology | Purpose |
|---|---|---|
| Desktop shell | Tauri 2 and Rust | Native window, networking, credential storage, files, updater, scheduling |
| Interface | React 19 and TypeScript | Single page workspace and typed state |
| Styling | Tailwind CSS | Responsive dark and light interface |
| State | Zustand | Project, audit, tools, settings, authentication, and workspace indicators |
| Charts | Native React chart components and SVG | Scores, trends, distributions, and comparisons |
| Graph | D3 force, drag, selection, and zoom | Interactive semantic and architecture maps |
| Translation | i18next and twelve locale files | Consistent interface language |
| Testing | Vitest, Testing Library, Rust tests, clippy | Logic, interface, integration, and native safety checks |
| Agent server | Model Context Protocol package | Local tool discovery and agent configuration |
| Capability | SEOmi | Browser side inspector | Cloud suite |
|---|---|---|---|
| Runs as a native macOS and Windows application | Yes | No | Usually no |
| Project scoped local history | Yes | Limited | Account storage |
| Single page deterministic checks | Yes | Yes | Yes |
| Multi page crawl with resume | Yes | No | Plan dependent |
| Semantic graph and topical calendar | Yes | No | Varies |
| DataForSEO locations and languages | Yes | No | Varies |
| Use an existing local AI subscription | Yes | No | Usually API billing |
| Secrets exported with a backup | No | Not applicable | Account dependent |
git clone https://github.com/tomaszboloz/SEOmi.git cd SEOmi npm install npm run devThe development server opens the single page preview. To exercise native commands use the desktop development command.
npm run tauri dev### Build and verify
npm run build npm test cargo test cargo fmt cargo clippyThe frontend commands run from the repository root. The Rust commands run from the native source directory or use the manifest path configured by the project scripts. A green local build does not prove that a third party service has quota or that a release certificate is available. ### First five minutes
| Area | Responsibility |
|---|---|
| Interface source | React workspace, navigation, dialogs, charts, audit views, and translations |
| Native source | Rust commands for HTTP, crawling, rendering, files, schedules, credentials, PDF reports, and updates |
| Agent server | Local MCP package, request safety, audit workflow, and response formatting |
| Tests | Frontend components, stores, services, route contracts, persistence, and native behaviour |
| Public assets | Application icon, real documentation captures, and static entry assets |
| Workflow configuration | Test gates, source reference checks, signing preflight, and release verification |
| Public project pattern | Useful documentation practice | SEOmi response |
|---|---|---|
| TaskPro Enterprise | Start with a product thesis, explain important gaps, list modules, show architecture, publish quality gates, describe setup, and name the author | Product scope, coverage ledger, module inventory, architecture, tests, release notes, license, and author |
| SkillSync | Provide a short start path, real screenshots, platform details, version policy, safe update protocol, rollback notes, FAQ, and contribution guidance | Project first quick start, real application captures, macOS and Windows notes, updater state, recovery guidance, FAQ, and support diagnostics |
| WCAG Accessibility Skills | Explain why the tool exists, expose manual review boundaries, document every command, define output contracts, describe limits, and separate compliance from evidence | Evidence model, confidence states, accessibility boundaries, control level references, export contract, limits, and verification status |
| FuelSwitch AI | Describe user value, account flows, widget states, settings, platform differences, privacy, tests, and interface examples | Local AI connection workflow, provider states, settings reference, privacy model, platform packaging, screenshots, and test matrix |
| Claude SEO | Show installation, practical commands, real result examples, methodology, integrations, comparison, limitations, extensions, and FAQ | Operator manual, request workflows, evidence examples, methodology, DataForSEO and Search Console paths, comparison, limitations, and FAQ |
| GEO SEO Claude | Document a complete audit flow, a scoring method, platform coverage, data storage, use cases, and client reports | Audit flow, severity model, provenance states, AI visibility coverage, project storage, examples, and report export descriptions |
| SEO for Craft CMS | Explain each core feature with screenshots and then show installation, configuration, output behaviour, and advanced examples | Each principal workspace has a real screen, configuration tables, output evidence, and workflow examples |
| Next SEO | Offer a compact start path followed by an exhaustive component reference with examples, properties, security notes, and support information | Quick start is followed by button reference, finding schema, crawl schema, integration reference, security notes, glossary, and FAQ |
| Control | Where it appears | Result |
|---|---|---|
| Create new project | Project gate, header switcher, sidebar | Opens validated project creation |
| Paste | Address bar | Reads a URL from the system clipboard |
| Audit URL | Address bar | Starts a project scoped single page audit |
| User Agent | Address bar | Chooses the request identity for an audit |
| Import URL list | Address bar | Loads a local comma separated URL file into the crawler queue |
| Overview | Audit group | Shows score, severity totals, and the highest value actions |
| Site Audit Crawler | Audit group | Opens queue settings, run controls, and crawl evidence |
| Semantic map and topical plan | Audit group | Opens content clusters, graph controls, and briefs |
| Go to | Header | Opens keyboard searchable workspace navigation |
| Connect AI | Header and sidebar | Opens local client and key connection choices |
| AI Optimizer | Header and sidebar | Opens metadata and structured data suggestions |
| Updates | Footer | Checks, downloads, installs, and reports restart state |
| Collapse menu | Sidebar footer | Gives the content canvas more horizontal space |
| Field | Meaning | Example value |
|---|---|---|
| Rule identifier | Stable local rule name | accessibility form controls unlabeled |
| Severity | Risk or review priority | Warning |
| Category | Technical, content, accessibility, security, performance, or social | Accessibility |
| Title | Short operator facing description | Visible control has no programmatic label |
| Detail | Explanation of the measured condition | Four of fourteen visible controls lack a label |
| Evidence | Bounded values or source excerpts | Input selector and source line |
| Action | Suggested next step | Connect the control to a label |
| Provenance | Where the value came from | HTTP response and local parser |
| Confidence | Strength of the conclusion | Measured, limited, or unknown |
| State | Meaning | Operator response |
|---|---|---|
| Measured | Value was returned or parsed from the selected document | Use it as evidence within its scope |
| Derived | Value was calculated from measured records | Open the source records before publishing a decision |
| Limited | Bounded data was available but incomplete | Review the partial evidence flag |
| Unknown | The source did not provide enough information | Connect the source or rerun with suitable settings |
| Unavailable | The request failed or credentials were absent | Resolve the connection or inspect the error |
| Requirement | Implementation area | Evidence status |
|---|---|---|
| Project first entry | Project gate and project store | Locally tested |
| Project persistence | Project store and scoped stores | Locally tested |
| Single page audit | Audit service and audit tabs | Locally tested |
| Visible control evidence | Accessibility analyser and finding drawer | Locally tested |
| Hidden honeypot safety | Control filtering rule | Locally tested |
| Resumable crawler | Native queue and crawl persistence | Locally tested |
| Content only semantic extraction | Semantic extractor and crawler fields | Locally tested |
| Graph navigation | D3 force, drag, and zoom workspace | Locally tested |
| DataForSEO catalog | Location and language picker services | Locally tested |
| First party Search Console | Connection and query workspace | Integration path tested |
| Local AI subscription | AI connection and agent workflow | Local detection tested |
| MCP configuration | MCP hub and native export | Local export tested |
| Updater state | Footer and updater service | Unsigned release environment pending |
| Signed packages | Release workflow | Requires release secrets |
| Term | Meaning |
|---|---|
| Active project | The project that receives the next result |
| Audit snapshot | Immutable evidence from one page request |
| Crawl run | A bounded collection of page requests and checkpoints |
| Main content | The page region used for semantic analysis after template removal |
| Semantic term | A normalised phrase observed in main content |
| Entity evidence | A named concept and the page context supporting it |
| Cluster | A group of pages and terms connected by observed evidence |
| Content brief | A saved plan for improving or creating a page |
| Provider credential | A secret used for one external data service |
| Local client | A Claude, Codex, or Gemini command line session on the device |
| Evidence provenance | The source and processing path for a value |
| Partial evidence | A bounded result that cannot represent the complete source |
| Deep link | A project scoped address that opens one workspace module |
| Credential manager | The operating system storage for secrets |
| Wake up registration | An operating system trigger for a scheduled task |
SEOmi is a native desktop workspace for technical search optimisation and content planning.
Installed builds target macOS and Windows.
No. It is a desktop application with a single page interface.
Local audits and local projects do not require an account.
Select an existing project or create a new project.
It prevents results from being saved without a clear workspace owner.
Yes. The project switcher has a create action.
Yes. The sidebar has a visible create project button.
Yes. Audit data, crawl data, keywords, ranks, maps, schedules, and secrets use the active project.
Yes. The selected project and active workspace destination are restored.
Yes. Project management exposes the rename action.
Yes. Settings exports a JSON project backup.
No. Service keys and passwords remain in the operating system credential manager.
No. Import creates a separate project identifier.
It fetches the URL, follows permitted redirects, stores bounded HTML and records response evidence.
The base audit reads the response. The optional local rendering worker handles rendered evidence.
Presence, text, length, and evidence location are checked.
Presence, text, length, and source evidence are checked.
Yes. It resolves and reports the declared canonical address.
Yes. Meta robots and X Robots Tag are included in the technical evidence.
No. Hidden controls are excluded from the visible control accessibility rule.
Yes. The audit does not require a hidden spam field to be changed.
Yes. The finding can include a selector, source excerpt, and rendered element action.
Yes. H1 through H6 are shown as a tree with hierarchy warnings.
Yes. Internal and external links are separated with anchor and rel evidence.
Yes. A new window target without safe rel values is reported.
Yes. Alt text, dimensions, loading, source set, and format hints are shown.
It applies local rules to JSON LD, Microdata, RDFa, and common Schema types.
No. It is evidence based local validation and does not replace a search engine test.
Yes. Social previews expose Open Graph and Twitter card values.
Yes. The sandbox supports live title, description, image, and query changes.
Yes. Origin and path scope rules are applied before a URL enters the queue.
Yes. Include and exclude patterns can be previewed before a run.
Yes. Pause preserves the queue and checkpoint.
Yes. Resume continues from the stored checkpoint.
The queue remains available and persistence retries through native storage when possible.
No. Semantic extraction focuses on main content and excludes repeated layout regions.
No. Footer content is excluded from semantic terms and clusters.
No. Sidebar and navigation content are excluded.
It is a visual map of pages and internal link connections from a crawl.
It is a map of content topics, entities, pages, clusters, and links.
Yes. Dragging uses the force simulation interaction.
Yes. Scrolling zooms the canvas and the reset action restores the layout.
Normalised main content terms, entity evidence, and page relationships create the cluster input.
Yes. A selected topic can hold intent, phrases, entities, outline, evidence, and links.
Yes. Planned, briefed, drafted, published, and needs update states are persisted.
Keyword research, saved keywords, clustering, SERP preview, and rank tracking are included.
Yes. DataForSEO locations can be selected from the full catalog.
Yes. Language selection is available and can be searched by typing.
No. Typing the first letters narrows and sorts the matching results.
It stores the project keyword, location, language, device context, date, position, and trend.
It shows live domain metrics when the connected data source returns them.
Yes. The domain workspace includes backlinks and referring domain requests.
It is a project scoped record of requested performance results and trend charts.
Field data is Chrome UX Report information returned for a page with enough samples.
Yes. The Search Console workspace guides property selection and performance requests.
No. It reports the response from Search Console and keeps that distinction visible.
It is research of brand mentions, prompts, answers, and citation evidence in supported models.
No. It uses connected subscriptions or keys supplied by the operator.
Yes. A local Claude client or a direct provider key can be connected.
Yes. A local Codex client can be detected and configured.
Yes. A local Gemini client or a direct provider key can be connected.
No. An external request happens only when the operator chooses a connected service action.
MCP is the tool protocol used to expose research actions to supported local agents.
Yes. The native save dialog writes a configuration chosen by the operator.
Keys are stored in the operating system credential manager per project.
No. Credential values are not copied into reports or project backups.
Yes. The links view exports the detected link inventory.
Yes. The images view exports image evidence and attributes.
Yes. Native PDF commands generate page audit and crawl reports.
It can use the operating system wake up registration and a headless native worker.
No. Notifications are optional and project scoped.
Yes. The footer opens the update panel and the desktop can check automatically.
Yes. Automatic checking and installation are supported when enabled in the desktop configuration.
The update result states when a restart is required and offers a restart action.
The current version is displayed in the footer rather than the header.
The Tauri updater verifies the published signature before installation.
English, Polish, German, Spanish, French, Italian, Portuguese, Russian, Japanese, Korean, Chinese, and Arabic are included.
Dialogs, navigation, audit tabs, command search, and focus states have keyboard support.
Yes. Tables, findings, source evidence, URLs, JSON, and report text expose copy actions.
No. It is an evidence and workflow tool, not a ranking guarantee.
No. Security findings are local checks and require specialist review.
No. The operator reviews evidence and owns every resulting change.
Use the project repository issue tracker and include the operating system, version, reproduction steps, and safe diagnostic output.
Unsafe local and private network targets are rejected by the URL boundary.
Redirects are checked against the configured scope before the final document is accepted.
Yes. Path scope and include rules can limit the queue.
Yes. Exclude rules are previewed and applied before requests are sent.
Yes. The address bar accepts a local comma separated URL file.
Yes. The comparison view reports added, removed, changed, and stable pages.
No. HTML and excerpts are bounded to keep local storage predictable.
The page receives a blocked or unavailable state with the response evidence that exists.
No. Rendered capture is an explicit local option.
Yes. The local rendering worker supports a selector wait and a bounded delay.
Yes. A render task can scroll to reveal lazy content before capture.
The semantic and architecture workspaces expose export actions for the available graph evidence.
Yes. Cluster, orphan, and hub filters are available.
Yes. A selected node shows its source URLs and evidence.
Yes. A topical plan can store an asserted topic with provenance separate from measured crawl terms.
Yes. Planned, briefed, drafted, published, and needs update states are stored.
No. Search volume is shown only when a connected provider returns it.
Yes. The picker retains the selected code and displays its readable name.
Yes. Typing filters the full catalog without manual scrolling.
Yes. Typing filters available language names and codes.
The task records the provider error and keeps previous project evidence intact.
Yes. Credentials are stored by project.
Yes. Both values are stored with the task metadata and result provenance.
Yes. Choose another property in the connection flow for the active project.
Returned project evidence stays local unless the operator exports it.
Yes. A detected local subscription session can be used without adding an API key.
Yes. Disconnect removes the local connection record and does not remove project audit evidence.
No. The workflow starts a local connection when the operator chooses it.
Yes. Evidence cards and source panels provide copy actions.
Yes. Tables, findings, URLs, JSON, and report sections expose selectable text or copy actions.
No. Secret fields remain protected and are not part of evidence exports.
It means the evidence is bounded or incomplete and should be reviewed before a decision.
It means the available source did not support a conclusion.
Yes. Delete actions are scoped to the active project and ask for confirmation.
Yes. Completed pages remain in the project run.
Open Updates, read the signature status, and confirm the displayed version after restart.