Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

PrivateHeaderKit

日本語

Generate searchable private headers from this Mac or an installed iOS or watchOS Simulator runtime.

Requires macOS 14 or later. Prebuilt releases require Apple Silicon. iOS and watchOS generation require Xcode and a matching installed Simulator runtime; physical devices are not generation sources. Source installation requires Swift 6.3 and Xcode with iOS and watchOS Simulator SDKs.

Quick Start

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh

The installer is not written to the current directory.

If the installer prints a Next steps block, follow it instead of the command below. Otherwise run:

privateheaderkit

Choose a source, then generate all targets or enter specific framework, bundle, or dylib names. PrivateHeaderKit writes to ~/PrivateHeaderKit by default and prints the exact Headers directory for the generated files. Generated headers are grouped by platform and exact source, for example generated-headers/iOS/27.0_beta_24A5390f.

The installer does not edit shell profiles.

Build from Source

Build and run the source installer from the checkout:

git clone https://github.com/lynnswap/PrivateHeaderKit.git
cd PrivateHeaderKit
swift run -c release privateheaderkit-install

The installer builds privateheaderkit and three internal helpers from the same checkout. It accepts the same --prefix and --bindir options as install.sh.

Install Options

Custom directories

Install the command in ~/bin:

curl -fsSL https://github.com/lynnswap/PrivateHeaderKit/releases/latest/download/install.sh | sh -s -- --bindir ~/bin

Automation

The no-argument command is the recommended interactive path. For scripts, pass all generation inputs explicitly:

privateheaderkit \
--platform macOS \
--version "$(sw_vers -productVersion)" \
--build "$(sw_vers -buildVersion)" \
--system-root / \
--out ~/PrivateHeaderKit \
--target AppKit,Foundation
privateheaderkit \
--platform iOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target SwiftUI,UIKit
privateheaderkit \
--platform watchOS \
--version 27.0 \
--out ~/PrivateHeaderKit \
--target WatchKit

Use privateheaderkit --help for the complete option list. Replace each example version with an installed runtime version. If more than one runtime for the selected platform matches a version, add --build <build>.

Documentation

License

PrivateHeaderKit is available under the MIT License.

About

Generate private framework headers for iOS simulator runtimes and macOS system frameworks (dyld shared cache aware).

Topics

Resources

Contributing

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages