diff --git a/webapp/packages/plugin-help/package.json b/webapp/packages/plugin-help/package.json
index 4723b022b65..c2ad980f7ec 100644
--- a/webapp/packages/plugin-help/package.json
+++ b/webapp/packages/plugin-help/package.json
@@ -41,6 +41,7 @@
"@cloudbeaver/plugin-sql-editor": "workspace:*",
"@cloudbeaver/plugin-sql-editor-navigation-tab-script": "workspace:*",
"@cloudbeaver/plugin-top-app-bar": "workspace:*",
+ "@dbeaver/ui-kit": "workspace:^",
"mobx": "^6",
"mobx-react-lite": "^4",
"react": "^19",
diff --git a/webapp/packages/plugin-help/src/PluginBootstrap.ts b/webapp/packages/plugin-help/src/PluginBootstrap.ts
index d624a4637cd..fe8a71ef9e2 100644
--- a/webapp/packages/plugin-help/src/PluginBootstrap.ts
+++ b/webapp/packages/plugin-help/src/PluginBootstrap.ts
@@ -1,11 +1,11 @@
/*
* CloudBeaver - Cloud Database Manager
- * Copyright (C) 2020-2025 DBeaver Corp and others
+ * Copyright (C) 2020-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
-import { AppScreenService } from '@cloudbeaver/core-app';
+import { AppScreenService, SkipNavService } from '@cloudbeaver/core-app';
import { ActionSnackbar, importLazyComponent } from '@cloudbeaver/core-blocks';
import { LocalStorageSaveService } from '@cloudbeaver/core-browser';
import { Bootstrap, injectable } from '@cloudbeaver/core-di';
@@ -18,6 +18,7 @@ import { NavigationTabsService } from '@cloudbeaver/plugin-navigation-tabs';
import { ACTION_APP_HELP } from './actions/ACTION_APP_HELP.js';
+const SkipNavShortcutsLink = importLazyComponent(() => import('./SkipNavShortcutsLink.js').then(m => m.SkipNavShortcutsLink));
const ShortcutsDialog = importLazyComponent(() => import('./Shortcuts/ShortcutsDialog.js').then(m => m.ShortcutsDialog));
const WelcomeDocs = importLazyComponent(() => import('./WelcomeDocs.js').then(m => m.WelcomeDocs));
@@ -29,6 +30,7 @@ const WelcomeDocs = importLazyComponent(() => import('./WelcomeDocs.js').then(m
NotificationService,
LocalStorageSaveService,
NavigationTabsService,
+ SkipNavService,
])
export class PluginBootstrap extends Bootstrap {
private errorNotification: INotification
| null;
@@ -40,6 +42,7 @@ export class PluginBootstrap extends Bootstrap {
private readonly notificationService: NotificationService,
private readonly localStorageSaveService: LocalStorageSaveService,
private readonly navigationTabsService: NavigationTabsService,
+ private readonly skipNavService: SkipNavService,
) {
super();
this.errorNotification = null;
@@ -51,6 +54,7 @@ export class PluginBootstrap extends Bootstrap {
this.navigationTabsService.welcomeContainer.add(WelcomeDocs, undefined);
this.addTopAppMenuItems();
this.addMultiTabSupportNotification();
+ this.skipNavService.extraLinks.add(SkipNavShortcutsLink);
}
private addMultiTabSupportNotification() {
diff --git a/webapp/packages/plugin-help/src/SkipNavShortcutsLink.tsx b/webapp/packages/plugin-help/src/SkipNavShortcutsLink.tsx
new file mode 100644
index 00000000000..6d807aeacf6
--- /dev/null
+++ b/webapp/packages/plugin-help/src/SkipNavShortcutsLink.tsx
@@ -0,0 +1,31 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+import { observer } from 'mobx-react-lite';
+import { importLazyComponent, useTranslate } from '@cloudbeaver/core-blocks';
+import { useService } from '@cloudbeaver/core-di';
+import { CommonDialogService } from '@cloudbeaver/core-dialogs';
+import { UnstyledButton } from '@dbeaver/ui-kit';
+
+import { skipNavStyles } from '@cloudbeaver/core-app';
+
+const ShortcutsDialog = importLazyComponent(() => import('./Shortcuts/ShortcutsDialog.js').then(m => m.ShortcutsDialog));
+
+export const SkipNavShortcutsLink = observer(function SkipNavShortcutsLink(): React.ReactElement {
+ const translate = useTranslate();
+ const commonDialogService = useService(CommonDialogService);
+
+ function handleClick() {
+ commonDialogService.open(ShortcutsDialog, undefined);
+ }
+
+ return (
+
+ {translate('shortcuts_title')}
+
+ );
+});
diff --git a/webapp/packages/plugin-help/tsconfig.json b/webapp/packages/plugin-help/tsconfig.json
index 0dad48367f9..acdfa124e70 100644
--- a/webapp/packages/plugin-help/tsconfig.json
+++ b/webapp/packages/plugin-help/tsconfig.json
@@ -7,6 +7,9 @@
"composite": true
},
"references": [
+ {
+ "path": "../../common-react/@dbeaver/ui-kit"
+ },
{
"path": "../core-app"
},
diff --git a/webapp/yarn.lock b/webapp/yarn.lock
index d287b3be99e..170d2927a1c 100644
--- a/webapp/yarn.lock
+++ b/webapp/yarn.lock
@@ -3338,6 +3338,7 @@ __metadata:
"@cloudbeaver/plugin-sql-editor-navigation-tab-script": "workspace:*"
"@cloudbeaver/plugin-top-app-bar": "workspace:*"
"@cloudbeaver/tsconfig": "workspace:*"
+ "@dbeaver/ui-kit": "workspace:^"
"@types/react": "npm:^19"
"@types/react-dom": "npm:^19"
mobx: "npm:^6"