Skip to content

Instantly share code, notes, and snippets.

View efstathiosntonas's full-sized avatar

Stathis Ntonas efstathiosntonas

View GitHub Profile

Prevent dangerous Git Operations Hook

Create .claude/hooks/block-git-operations.sh and register it in settings.json.

Configuration

Add to .claude/settings.json:

"hooks": {
@efstathiosntonas
efstathiosntonas / SKILL.md
Last active January 17, 2026 10:54
Codex skill for claude code
name description
codex
Use when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing

Codex Skill Guide

Running a Task

  1. Ask the user (via AskUserQuestion) which model to run (gpt-5.2-codex or gpt-5.2) AND which reasoning effort to use (xhigh, high, medium, or low) in a single prompt with two questions.
@efstathiosntonas
efstathiosntonas / SKILL.md
Created December 6, 2025 09:29
Go Network performance from blog: https://goperf.dev/02-networking/
name description
go-networking
Go networking performance patterns and best practices. Use when optimizing network I/O, building high-performance servers, managing connections, tuning TCP/HTTP/gRPC, or diagnosing networking issues in Go applications.

Go-Networking Skill

Comprehensive assistance with go-networking development, generated from official documentation.

When to Use This Skill

name description
go-performance
Go performance optimization patterns and best practices. Use when optimizing Go code, reducing memory allocations, improving GC behavior, tuning concurrency, or diagnosing performance issues in Go applications.

Go-Performance Skill

Comprehensive assistance with go-performance development, generated from official documentation.

When to Use This Skill

@efstathiosntonas
efstathiosntonas / <appname>.Bridging-Header.h
Last active December 12, 2025 12:57
Lottie as a react-native bootsplash
//
// <appname>-Bridging-Header.h <----- replace the app name with your app's name
// <appname>
//
// Created by Efstathios Ntonas on 2/2/24.
//
#ifndef <appname>_Bridging_Header_h
#define <appname>_Bridging_Header_h
@efstathiosntonas
efstathiosntonas / AudioManager.ts
Created May 17, 2024 07:40
Audio Player Chat Message with react-native-awesome-slider & react-native-audio-player-recorder
import AudioRecorderPlayer, { PlayBackType } from "react-native-audio-recorder-player";
import { isIOS } from "utils/utils";
type Callback = (args: { data?: PlayBackType; status: AudioStatus }) => void;
type Path = string | undefined;
export enum AudioStatus {
PAUSED = "PAUSED",
PLAYING = "PLAYING",
RESUMED = "RESUMED",
@efstathiosntonas
efstathiosntonas / AnimatedSection.tsx
Last active February 16, 2024 17:19
react-native CollapsibleView with reanimated@3
import React, { memo, ReactNode } from "react";
import { LayoutChangeEvent, StyleProp, StyleSheet, ViewStyle } from "react-native";
import Animated from "react-native-reanimated";
import isEqual from "react-fast-compare";
import type { State } from "./types";
type Props = {
animatedHeight: any;
children: ReactNode;
@efstathiosntonas
efstathiosntonas / getLocation.ts
Created June 7, 2023 07:29
ExpoGetLocationWithRetry.ts
const locationOptions: LocationOptions = {
accuracy: LocationAccuracy.Balanced,
distanceInterval: 250
};
const lastKnownLocationOptions: LocationLastKnownOptions = {
maxAge: 60000,
requiredAccuracy: 1000
};
@efstathiosntonas
efstathiosntonas / BubbleArrow.tsx
Created February 1, 2023 15:57
BubbleArrow for react native
import React, { memo, useMemo } from "react";
import { Platform, StyleSheet, View } from "react-native";
import Svg, { Path } from "react-native-svg";
import { moderateScale } from "react-native-size-matters";
import { useStyle } from "react-native-style-utilities";
import useThemeContext from "@themes/themeContext";
import { Chat_Message } from "@generated/graphql";
import { currentUser } from "@functions/auth";
@efstathiosntonas
efstathiosntonas / App.tsx
Last active December 19, 2022 19:57
React Native card swiper like iOS iMessage multiple images swiper
import React, {FC} from 'react';
import {Dimensions, StyleSheet, View} from 'react-native';
import {
Gesture,
GestureDetector,
GestureHandlerRootView,
} from 'react-native-gesture-handler';
import Animated, {
Easing,
interpolate,