The Teal Harbor Bag Holder is a tall, textured tube that keeps plastic grocery bags tidy on a kitchen wall. You push bags in through the wide top opening and pull them out one at a time through the round hole at the bottom.
The design alternates deep teal rope cables with cream open lattice columns. The cream frames the top rim, the bottom opening, and the hanging strap, so the holder has a clean, crisp outline against the wall. A natural wooden ring at the top completes the farmhouse look.
This pattern uses US crochet terms. The finished holder is about 7.4 in (18.8 cm) wide when flat and about 20.25 in (51.4 cm) long from the bottom edge to the base of the ring.
You make it in one piece, bottom up. You start with a teal ring base around the dispensing opening, then work the cable-and-lattice body in joined rounds, add a cream top rim, and shape a tapered strap in rows from the back half of the rim. The cream edging around the bottom opening is added last.
Finished Size and Construction
- Finished size: 7.4 in (18.8 cm) wide flat × 20.25 in (51.4 cm) long, not including the ring
- Skill level: Intermediate (post stitches, cables, color changes)
- Terminology: US
- Yarn weight: Worsted (#4), cotton or cotton blend
- Hook: 5 mm (H-8)
- Number of pieces: 1
- Layout: Tube of 4 cable columns and 4 lattice columns, with a tapered strap
- Piece size: circumference 14.9 in (37.8 cm); tube length 15 in (38.1 cm)
- Size before border: tube length 14.5 in (36.8 cm)
- Border depth: top rim 0.5 in (1.3 cm); opening edging about 0.4 in (1.0 cm)
Materials
Use a smooth worsted cotton or cotton blend. Cotton keeps the cables crisp and the lattice open, and it holds its shape when the holder is full. Avoid fuzzy yarns, because they blur the lattice.
- Color A, deep teal: 120 g / about 205 m (224 yd)
- Color B, cream: 90 g / about 155 m (170 yd)
All quantities include a margin of roughly 15 percent for your gauge swatch and for tension differences.
Tools:
– 5 mm (H-8) crochet hook
– 1 wooden ring, 2 in (5.1 cm) across
– Stitch markers (at least 4)
– Tapestry needle
– Scissors
– Measuring tape
– Rust-proof pins and a towel for blocking
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- FPdc – front post double crochet
- FPtr – front post treble crochet
- sc2tog – single crochet 2 together
- sk – skip
- st(s) – stitch(es)
- sp – space
- rnd(s) – round(s)
- RS – right side
Special stitch: 6-st Cable Cross (6-CC). Sk 3 sts, FPtr around each of the next 3 sts. Then, working in front of the 3 sts you just made, FPtr around each of the 3 skipped sts. This makes 6 sts and gives a left-leaning rope twist.
Color changes: Finish the last st of a color section by pulling through the final 2 loops with the new color. Carry the unused color loosely along the inside of the tube, laying it on top of the previous round and working over it. Inside the cream lattice, the carried teal strand shows through the openings as the dark background seen in the finished piece.
Gauge and Checkpoints
Gauge: 14 dc and 8 dc rnds = 4 in (10.2 cm). In sc, 14 sts and 16 rows = 4 in (10.2 cm).
Treat the base as your test piece. Measure it before you start the body, because the whole holder depends on it.
- Checkpoint 1 (after Base Rnd 3): the outer edge should measure about 14.9 in (37.8 cm) around. The center opening should be about 2.4 in (6.1 cm) across.
- Checkpoint 2 (after Body Rnd 8): one 13-st repeat (a cable column plus a lattice column) should measure about 3.7 in (9.4 cm) wide, and the 8 body rnds should measure 4 in (10.2 cm) tall.
- Checkpoint 3 (after Body Rnd 26): the body measures 13 in (33.0 cm) from the base edge.
- Checkpoint 4 (after Strap Row 11): the taper measures 2.75 in (7.0 cm) tall.
If your piece is too big, go down half a hook size. If it is too small, go up half a hook size. Cables pull in, so measure across the lattice columns as well as the cables.

Base
Work with Color A (teal).
Foundation: Ch 26 and sl st to the first ch to form a ring. Don’t twist the ring.
Rnd 1: Ch 2 (does not count as a st), dc in each ch around, sl st to first dc. (26 dc)
Rnd 2: Ch 2, [dc in next st, 2 dc in next st] 13 times, sl st to first dc. (39 dc)
Rnd 3: Ch 2, [dc in next 2 sts, 2 dc in next st] 13 times, sl st to first dc. (52 dc)
The base will cup gently. That cupping shapes the rounded bottom of the holder, and the center ring becomes the dispensing opening. Check Checkpoint 1 now.
Body
The body uses 4 repeats of a 13-st sequence: Cable column (6 sts, Color A) + Lattice column (7 sts, Color B). Every body rnd has 52 sts (4 × 13).
Start each rnd with Color A at the first cable column: ch 2 (does not count), work the rnd, and sl st to the first st. Place a marker in the first st of each cable column on Rnd 1 and move the markers up as you go.
Lattice rows used in the body:
- L1 (odd rnds): dc in first st, [ch 1, sk next st, dc in next st] 3 times. (4 dc + 3 ch = 7 sts)
- L2 (even rnds): dc in first dc, dc in next ch-1 sp, ch 1, sk next dc, dc in next ch-1 sp, ch 1, sk next dc, dc in next ch-1 sp, dc in last dc. (5 dc + 2 ch = 7 sts)
L1 and L2 alternate, so each opening sits halfway between the openings of the round below. This stagger forms the diagonal lattice.
Rnd 1 (setup): [With A, dc in next 6 sts; with B, work L1] 4 times, sl st to first dc. (52 sts: 24 teal dc + 4 × 7 lattice sts)
Rnd 2: [With A, FPdc around next 6 sts; with B, work L2] 4 times, sl st to first st. (52 sts)
Rnd 3: [With A, FPdc around next 6 sts; with B, work L1] 4 times, sl st to first st. (52 sts)
Rnd 4 (cable rnd): [With A, 6-CC; with B, work L2] 4 times, sl st to first st. (52 sts)
Rnds 5–26: Continue as set. On odd rnds, work the lattice as L1. On even rnds, work it as L2. Work a 6-CC on Rnds 8, 12, 16, 20, and 24, and FPdc around each cable st on all other rnds. (52 sts every rnd)
After Rnd 26, you have 6 cable crosses in each column. The body measures 13 in (33.0 cm), and the tube measures 14.5 in (36.8 cm) including the base. Cut Color A, leaving a 6 in (15.2 cm) tail.
Border
The border has three parts: the top rim, the tapered strap, and the edging around the bottom opening. All three use Color B (cream) in sc, at 14 sts and 16 rows = 4 in (10.2 cm).
Top Rim
Rim Rnd 1: With B, ch 1, sc in each dc and in each ch-1 sp around, sl st to first sc. (52 sc) This works 1 sc into each of the 52 existing sts, with 0 added. The total stays 52, so the rim keeps the 14.9 in (37.8 cm) circumference without ruffling or pulling in.
Rim Rnd 2: Ch 1, sc in each st around, sl st to first sc. (52 sc)
Flatten the tube so that one lattice column is centered on the front, one is centered on the back, and the two side lattice columns sit at the folds. You should see a half lattice, a cable, the center lattice, a cable, and a half lattice across the front. Place markers at the two folds. This gives 26 sts on the front and 26 sts on the back (26 + 26 = 52). The rim adds 0.5 in (1.3 cm), so the tube is now 15 in (38.1 cm) long.
Tapered Strap
Join B in the first back st after the right fold marker. You’ll work in rows across the 26 back sts only, and the 26 front sts stay free as the bag opening.
Row 1 (RS): Ch 1, sc in each of the 26 back sts, turn. (26 sc)
Rows 2–11: Ch 1, sc2tog, sc in each st to last 2 sts, sc2tog, turn. Each row loses 1 st at each end. (Row 2: 24 sc; Row 3: 22; Row 4: 20; Row 5: 18; Row 6: 16; Row 7: 14; Row 8: 12; Row 9: 10; Row 10: 8; Row 11: 6 sc)
The taper measures 2.75 in (7.0 cm).
Rows 12–25: Ch 1, sc in each st across, turn. (6 sc) The strap is 3.5 in (8.9 cm) long and 1.7 in (4.3 cm) wide.
Fasten off, leaving a 12 in (30.5 cm) tail. Slip the wooden ring onto the strap, fold the last 1 in (2.5 cm) to the wrong side, and whipstitch the strap end down securely across all 6 sts.
Why the math works: The back half has exactly 26 sts. Ten decrease rows take away 2 sts each (20 sts), which leaves 6 sts for the strap. The strap starts at the full back width of 7.4 in (18.8 cm) and narrows to 1.7 in (4.3 cm), so it lies flat against the wall without puckering the rim.
Bottom Opening Edging
Hold the holder upside down. Join B in any free loop of the foundation chain.
Edging Rnd 1: Ch 1, sc in each free loop around, sl st to first sc. (26 sc) This works 1 sc into each of the 26 foundation chains, with 0 added.
Edging Rnd 2: Ch 1, reverse sc (crab st) in each st around, sl st to first st. (26 sts)
Fasten off. The rolled cream edge firms up the opening, leaving a clear center about 2 in (5.1 cm) across. It’s snug enough to hold bags in and wide enough to pull one out.
Final Blocking
- Weave in all ends on the inside, following the carried strands so the ends stay hidden.
- Roll a hand towel into a tube about 15 in (38.1 cm) long and slide it inside the holder.
- Mist the piece lightly with water, or hold a steam iron 1 in (2.5 cm) above it. Don’t press it. Pressing flattens the cables.
- Gently ease each lattice column open with your fingers so the diamonds are even.
- Shape the bottom into a smooth rounded curve and center the opening.
- Pin the strap flat on a board, straight up from the back rim.
- Let everything dry completely before you remove the towel.
Final Quality-Control Checklist
- [ ] Every body rnd has 52 sts, and the columns stack straight up.
- [ ] Each cable column has 6 crosses, all twisting the same way.
- [ ] The lattice openings stagger evenly between L1 and L2 rnds.
- [ ] Carried strands are loose and don’t pucker the outside.
- [ ] The top rim lies flat at 14.9 in (37.8 cm) around.
- [ ] The strap taper is symmetrical, and the strap is 6 sts wide.
- [ ] The ring is sewn on securely through all strap layers.
- [ ] The bottom opening is round, about 2 in (5.1 cm) clear, with a neat cream roll.
- [ ] The finished length is about 20.25 in (51.4 cm) to the base of the ring.
Troubleshooting
The tube is narrowing at the cables. Front post sts pull in. Make your FPdc a little taller, and check that you aren’t skipping a post.
The lattice looks lumpy. Your ch-1 spaces are too tight. Keep the chains loose and the same size as your dc.
Color B shows through the cables. Carry Color B behind the cable sts and work over it with a slightly firmer yo.
The columns spiral. You likely missed a sl st join or started a rnd in the wrong st. Check that each rnd starts at a marker.
The strap leans. You decreased unevenly. Count each strap row against the numbers listed above.
The bottom opening is too loose. Work Edging Rnd 1 with a hook half a size smaller.
Care
Hand wash in cool water with mild soap, roll it in a towel to remove extra water, and dry it flat over a rolled towel. Remove the wooden ring before washing if you can.

Final Notes
Here is the measurement chain from start to finish. The base ends at 52 sts, about 14.9 in (37.8 cm) around. Twenty-six body rnds of 52 sts add 13 in (33.0 cm). The 52-st rim brings the tube to 15 in (38.1 cm). A 26-st taper shrinks to 6 sts over 2.75 in (7.0 cm), and the strap carries the holder up to its 2 in (5.1 cm) ring. If you hit each checkpoint, your holder will hang straight and hold plenty of bags.
Happy crocheting!