If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: codekitapp.com/help/hooks - CodeKit - Hooks.

site address: codekitapp.com/help/hooks/ redirected to: codekitapp.com/help/hooks

site title: CodeKit - Hooks

Our opinion (on Friday 03 July 2026 1:41:52 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:

Headings (most frequently used words):

hooks, hook, files, run, what, determining, changed, getting, the, project, root, folder, logging, output, limitations, security, performance, stability, adding, rules, matching, operators, order, do, not, on, copy, custom, languages, note, trigger, threading, warning, in, parallel,

Text of the page (most frequently used words):
the (47), hook (32), codekit (31), you (29), your (26), that (19), file (16), hooks (16), will (15), and (15), for (14), run (13), project (11), #output (11), files (9), this (7), #matching (7), from (6), not (6), are (6), use (6), custom (6), path (6), documents (5), log (5), with (5), script (5), applescript (5), should (5), can (5), code (5), folder (5), have (5), changed (5), root (5), variables (5), which (5), scss (5), languages (5), set (5), may (4), bash (4), runs (4), time (4), than (4), one (4), input (4), any (4), built (4), steps (4), environment (4), paths (4), compile (4), action (4), regex (4), then (4), example (3), writes (3), cause (3), different (3), down (3), case (3), once (3), write (3), thread (3), must (3), each (3), tell (3), processing (3), editor (3), child (3), trigger (3), full (3), type (3), adding (3), only (3), order (3), other (3), operators (3), command (3), parallel (2), always (2), like (2), likely (2), because (2), five (2), threads (2), crash (2), mind (2), safe (2), after (2), first (2), keep (2), every (2), what (2), add (2), automatically (2), when (2), source (2), has (2), last (2), see (2), new (2), them (2), worker (2), about (2), save (2), cannot (2), scripting (2), note (2), exits (2), entry (2), whatever (2), ck_project_root (2), npm (2), above (2), getting (2), these (2), would (2), parent (2), ck_output_path (2), ck_input_path (2), targets (2), read (2), ignore (2), copy (2), more (2), settings (2), operator (2), provide (2), syntax (2), scripts (2), rules (2), choose (2), plugins (2), frameworks (2), minifier (2), tools (2), postcss (2), browsers (2), topics (2), privacy, policy, report, bug, email, support, follow, developer, twitter, made, san, diego, programming, hard, welcome, world, create, single, problems, instances, competing, access, slow, compiling, worst, corrupt, data, txt, compiles, many, during, builds, means, simultaneously, warning, background, main, become, unresponsive, while, completes, caches, compiled, version, subsequent, significantly, faster, initial, threading, short, simple, remember, malformed, sure, double, check, performance, stability, said, exactly, criteria, specify, met, deletes, hope, backup, there, safety, net, protect, yourself, detects, since, saw, happens, alert, app, disable, verify, manually, enable, checking, box, pictured, imagine, shared, evil, adds, commits, his, changes, pull, syncs, delete, next, security, interactive, prompts, require, human, additionally, able, under, privileges, current, user, prohibited, sudo, limitations, also, something, api, marked, error, stdout, stderr, non, zero, appears, affected, just, logging, node_modules, mymodule, dostuff, optiona, installed, packages, want, call, might, variable, get, those, was, actually, saved, imports, find, unless, enabled, both, twice, screenshot, shows, called, told, handlebars, specified, two, special, determine, triggered, determining, their, details, setting, actions, process, filetypes, complete, triggers, drag, change, top, start, leading, slash, likewise, string, begins, wildcards, supported, invalid, fail, uses, slower, used, resort, icu, matches, all, insensitive, diacritic, marks, same, assuming, added, macintosh, users, john, disk, option, refers, starting, drive, rule, click, button, customize, name, define, open, area, category, let, extend, handle, kind, either, becomes, another, step, watch, screencast, faq, upgrading, mode, coda, sublime, text, atom, nova, team, workflows, advanced, eslint, checkers, jeet, nib, susy, zurb, foundation, bitters, bourbon, bootstrap, tailwind, gif, svg, jpeg, png, webp, image, optimizers, json, markdown, kit, slim, haml, pug, typescript, coffeescript, javascript, stylus, less, sass, bless, lightningcss, html, cache, buster, rollup, bundler, terser, babel, transpiler, purgecss, autoprefixer, license, recovery, troubleshooting, git, stuff, know, target, build, defaults, projects, second, language, options, browser, sync, live, reload, started, close, view, buy, now, menu, updates, help, videos, features,


Text of the page (random words):
codekit hooks features videos help about updates menu buy now hooks view topics close topics first steps getting started live reload browsers browser sync set language options set output paths action second steps defaults for new projects build your project set target browsers stuff to know codekit git troubleshooting license recovery postcss tools autoprefixer purgecss custom postcss plugins other tools npm babel js transpiler terser js minifier rollup js bundler cache buster html minifier lightningcss bless languages sass less stylus javascript coffeescript typescript pug haml slim kit markdown json image optimizers webp png jpeg svg gif frameworks codekit frameworks tailwind bootstrap bourbon bitters zurb foundation susy nib jeet syntax checkers eslint advanced hooks environment variables adding custom languages team workflows scripting codekit editor plugins nova atom sublime text coda 2 more read only mode upgrading from 2 0 faq what s a hook 4 07 watch the screencast hooks let you extend codekit to handle any kind of file you provide a custom command in either bash or applescript then tell codekit which files should trigger that command your command becomes another processing step for files of that type adding a hook open the project settings area then choose the hooks category click the button to add a hook customize the name choose the type of script your hook will run applescript or bash then define the rules for file matching rules use the rule editor to tell codekit which files should trigger this hook the path from disk root option refers to a file s full input path starting at the root of your drive macintosh hd users john documents project scripts file js assuming project is the folder you ve added to codekit then the path from project root would be scripts file js matching operators all matching operators are case insensitive and ignore diacritic marks é and e are the same wildcards are not supported in any operator other than matches regex invalid regex will cause your hook to fail codekit uses icu v3 regex syntax regex is slower than other matching operators and should be used only as a last resort if you use begins with keep in mind that input and output paths start with a leading slash likewise if you use the is operator you must provide a full matching string hook order if a file triggers more than one hook the hooks are run in top down order drag hooks up or down in project settings to change that order if your hook targets filetypes for which codekit has built in processing your hook always runs after codekit s built in steps complete hooks do not run on copy your hook will run only on files that have their output action set to process compile if the output action is set to copy or ignore hooks do not run for details see setting output paths actions custom languages if your hook targets a type of file that is not one of codekit s built in languages you should read adding custom languages to codekit determining changed files if your hook is a bash script you can use two special environment variables to determine which file triggered the hook ck_input_path will be the input path of the changed file ck_output_path will be the full output path as specified in codekit the screenshot above shows these variables in action in this hook handlebars is called to compile the changed file at ck_input_path and it s told to write the output to ck_output_path note trigger files the paths in these variables may not be those of the file that was actually saved for example if parent scss imports child scss and you save child scss in your editor codekit will compile parent scss and that s the path you ll find in the environment variables unless you have enabled an output file for child scss in which case codekit would compile both files and run any matching hook twice getting the project s root folder you can use the environment variable ck_project_root to get the project s root folder in codekit 3 0 5 and above for example if you ve installed custom npm packages in your project and want to call one of them in a hook you might write ck_project_root node_modules mymodule dostuff optiona logging output hook output appears in codekit s log entry for the affected file just like output from codekit s built in processing steps if your hook exits with a non zero code the entry will be marked as an error and codekit will log whatever your hook writes to stderr if your hook exits with code 0 codekit will log whatever it writes to stdout note you can also use codekit s scripting api to log something at any time limitations hooks cannot be interactive that is your script cannot have prompts that require human input additionally your script must be able to run under the privileges of the current user sudo is prohibited security imagine that you have a shared codekit project and an evil co worker adds this hook rm rf documents your co worker commits his changes you pull and codekit syncs the project are you about to delete your documents folder next time you save no codekit automatically detects when a hook s source code has changed since you last saw it when this happens you ll see an alert and the app will automatically disable the new changed hooks once you verify that the source code for each hook is safe you can manually re enable them by checking the box pictured that said there is no safety net to protect you from yourself codekit will run exactly what you tell it to run every time the criteria you specify are met so if you add the hook that deletes your documents folder i hope you have a backup performance stability keep hooks short and simple remember that each hook will be run once for every matching file malformed hooks can crash codekit so be sure to double check your code threading if your hook is a bash script codekit runs it on a background thread applescript hooks must run on the main thread because applescript is not thread safe codekit s ui may become unresponsive while your hook completes codekit caches the compiled version of each applescript hook after it runs the first time subsequent runs should be significantly faster than the initial one warning hooks run in parallel codekit compiles many files at once during builds this means it s likely that your hook will run simultaneously on different threads for different files write your hooks with this in mind for example if you create a hook that always writes to a single file like documents log txt that will likely cause problems because five instances of your hook will be competing for access to that file from five different threads this may slow down compiling or it may in the worst case corrupt data or cause a crash parallel programming is hard welcome to my world made in san diego ca follow the developer on twitter email support report a bug privacy policy
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)

Verified site has: 67 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-67


The site also has 3 references to external domain(s).

 userguide.icu-project.org  Verify  twitter.com  Verify  github.com  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
Date Fri, 03 Jul 2026 01:41:52 GMT
Content-Type text/html; charset=iso-8859-1
Transfer-Encoding chunked
Connection close
Server cloudflare
Location htt????/codekitapp.com/help/hooks/
Nel report_to : cf-nel , success_fraction :0.0, max_age :604800
Report-To group : cf-nel , max_age :604800, endpoints :[ url : htt????/a.nel.cloudflare.com/report/v4?s=jf5nMN%2BdbFt1R4liKYjDSJ1CGPgCdQJvbZWJYmzEAb2lrOujkBWOwd80U1YRPPg4WKfoDjnuh%2F2aYSLyIKl0gB9NY3CNJA3sF3MtWpSFXY4v9u8ThZES3nV44eGdUMlQtQ%3D%3D ]
Cf-Cache-Status DYNAMIC
CF-RAY a15230ba3b14d622-CDG
alt-svc h3= :443 ; ma=86400
HTTP/2 200
date Fri, 03 Jul 2026 01:41:52 GMT
content-type text/html; charset=UTF-8
server cloudflare
x-frame-options SAMEORIGIN
referrer-policy no-referrer-when-downgrade
strict-transport-security max-age=31536000; includeSubDomains
x-content-type-options nosniff
permissions-policy camera=(), display-capture=(), gyroscope=(), microphone=(), usb=(), battery=(), accelerometer=(), magnetometer=()
last-modified Thu, 06 Mar 2025 18:36:54 GMT
nel report_to : cf-nel , success_fraction :0.0, max_age :604800
report-to group : cf-nel , max_age :604800, endpoints :[ url : htt????/a.nel.cloudflare.com/report/v4?s=OzfzHGjFl8695OJbX5HsR8J9hrM47EOrg60YmEmO20e2NktCawEsW8A5ONwjMRcdYVRrT0rEpE%2FVwSls0SI5%2FOGGDk1F9C%2FOfFe%2BfpcQQKJ6AVLw1Yx06y52dIbsXjHLrw%3D%3D ]
cf-cache-status DYNAMIC
content-encoding gzip
cf-ray a15230bb3ffcef92-AMS
alt-svc h3= :443 ; ma=86400

Meta Tags

title="CodeKit - Hooks"
charset="utf-8"
content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"
name="viewport" content="width=device-width, initial-scale=1"

Load Info

page size7712
load time (s)0.364825
redirect count1
speed download21186
server IP 104.21.2.101
* all occurrences of the string "http://" have been changed to "htt???/"