55 lines
1.7 KiB
HTML
55 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Bookmarks API</title>
|
|
<link rel="stylesheet" href="ui.css">
|
|
</head>
|
|
<body class="page">
|
|
<header>
|
|
<h1>Bookmarks API for Scripting and AI</h1>
|
|
<p class="lead">An API add-on for Firefox to allow agentic and script-based management of user bookmarks.</p>
|
|
<ol class="process">
|
|
<li>Issue a secret for each agent or script that should be allowed to work with your bookmarks.</li>
|
|
<li>Store that secret with your secrets. This add-on keeps only a hash.</li>
|
|
<li>While Firefox is open, those tools call the local bookmarks API. A separately installed native host is what listens for those calls — this page does not need it.</li>
|
|
</ol>
|
|
<p id="status" class="muted"></p>
|
|
</header>
|
|
|
|
<section class="row">
|
|
<input id="name" type="text" maxlength="64" placeholder="Client name" autocomplete="off">
|
|
<button id="create" type="button">Generate secret</button>
|
|
</section>
|
|
<p id="error" class="error" hidden></p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Created</th>
|
|
<th>Last used</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="rows">
|
|
<tr><td colspan="4" class="muted">Loading…</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<dialog id="secret-modal">
|
|
<h2>Copy this secret now</h2>
|
|
<p class="muted">It will not be shown again. Store it with your secrets.</p>
|
|
<label class="sr">Secret</label>
|
|
<textarea id="secret" readonly rows="3"></textarea>
|
|
<div class="row">
|
|
<button id="copy" type="button">Copy</button>
|
|
<button id="close" type="button">I saved it</button>
|
|
</div>
|
|
</dialog>
|
|
|
|
<script src="clients.js"></script>
|
|
<script src="options.js"></script>
|
|
</body>
|
|
</html>
|